[DEVELOPMENT ENVIRONMENT]

* BUG: CTRL+F and CTRL+R now correctly takes the current selected text as 
  search string in all cases.

[GB.GTK]
* NEW: The DrawingArea.Transparent has been removed.

[GB.QT4]
* NEW: The DrawingArea.Transparent has been removed.
* NEW: Do not resize the width (or the height) of a control if the parent 
  container controls it during arrangement.
* BUG: Remove a debugging message.
* BUG: Try to make controls non-opaque as much as possible, so that styles 
  having gradients like Oxygen are correctly displayed.


git-svn-id: svn://localhost/gambas/trunk@2919 867c0c6c-44f3-4631-809d-bfa615b0a4ec
This commit is contained in:
Benoît Minisini 2010-04-27 21:05:15 +00:00
parent 618df42b55
commit dab2e24446
30 changed files with 4568 additions and 4761 deletions

2
TODO
View File

@ -46,7 +46,6 @@ DEVELOPMENT ENVIRONMENT
- Load/Save in menu editor.
- Generates an index control->component to suggest components for missing controls.
- Be able to open a .tar.gz project, and compress it back when the project is closed.
- Ability to merge projects.
- Conditional breakpoints.
- Allow changing the case of class names.
@ -58,7 +57,6 @@ GUI RELATED STUFF
- Standard dialog must remember their size.
- Form.KeyPreview
- ValueBox.Value should be visible in the IDE.
- "Replace" mode in Editor.
DESKTOP COMPONENT

View File

@ -22,7 +22,7 @@ msgstr ""
msgid "Authors"
msgstr ""
#: CComponentBox.class:207 FPropertyProject.class:1993
#: CComponentBox.class:207 FPropertyProject.class:1989
msgid "Requires"
msgstr ""
@ -150,7 +150,7 @@ msgstr ""
msgid "Image routines from the Imlib2 library"
msgstr ""
#: CComponent.class:103 FPropertyProject.class:2025
#: CComponent.class:103 FPropertyProject.class:2021
msgid "Image loading and saving"
msgstr ""
@ -254,15 +254,15 @@ msgstr ""
msgid "Web applications tools"
msgstr ""
#: CComponent.class:130 FPropertyProject.class:2013
#: CComponent.class:130 FPropertyProject.class:2009
msgid "Graphical form management"
msgstr ""
#: CComponent.class:131 FPropertyProject.class:2019
#: CComponent.class:131 FPropertyProject.class:2015
msgid "Event loop management"
msgstr ""
#: CComponent.class:133 FPropertyProject.class:2031
#: CComponent.class:133 FPropertyProject.class:2027
msgid "OpenGL display"
msgstr ""
@ -467,7 +467,7 @@ msgstr ""
msgid "Project commit"
msgstr ""
#: FCommit.class:195 FMakeInstall.class:1268 FPropertyProject.class:1521
#: FCommit.class:195 FMakeInstall.class:1268 FPropertyProject.class:1520
msgid "Description"
msgstr ""
@ -909,7 +909,7 @@ msgid "Style sheet"
msgstr ""
#: FCreateFile.class:791 FCreateProject.class:537 FImportTable.class:489
#: FPropertyProject.class:1542
#: FPropertyProject.class:1541
msgid "Options"
msgstr ""
@ -1059,7 +1059,7 @@ msgstr ""
msgid "Identification"
msgstr ""
#: FCreateProject.class:650 FPropertyProject.class:1511
#: FCreateProject.class:650 FPropertyProject.class:1510
msgid "Title"
msgstr ""
@ -1170,7 +1170,7 @@ msgstr ""
msgid "Add expression"
msgstr ""
#: FDebugInfo.class:1072 FMakeInstall.class:1539 FPropertyProject.class:2071
#: FDebugInfo.class:1072 FMakeInstall.class:1539 FPropertyProject.class:2067
msgid "&Add"
msgstr ""
@ -1322,7 +1322,7 @@ msgstr ""
msgid "Find list"
msgstr ""
#: FFindList.class:279 FSearch.class:388 FTranslate.class:578
#: FFindList.class:279 FSearch.class:373 FTranslate.class:578
msgid "Search string cannot be found."
msgstr ""
@ -1871,7 +1871,7 @@ msgstr ""
msgid "This file has not been modified since the last commit."
msgstr ""
#: FInfo.class:304 FOption.class:776 FPropertyProject.class:1464
#: FInfo.class:304 FOption.class:776 FPropertyProject.class:1463
msgid "General"
msgstr ""
@ -1887,7 +1887,7 @@ msgstr ""
msgid "Last modified"
msgstr ""
#: FInfo.class:390 FPropertyProject.class:1949
#: FInfo.class:390 FPropertyProject.class:1945
msgid "Versioning"
msgstr ""
@ -1903,7 +1903,7 @@ msgstr ""
msgid "Edit list property"
msgstr ""
#: FList.class:274 FMenu.class:843 FPropertyProject.class:1886
#: FList.class:274 FMenu.class:843 FPropertyProject.class:1889
msgid "&Insert"
msgstr ""
@ -2965,11 +2965,11 @@ msgstr ""
msgid "Sort properties"
msgstr ""
#: FOption.class:862 FPropertyProject.class:1595
#: FOption.class:862 FPropertyProject.class:1594
msgid "No"
msgstr ""
#: FOption.class:862 FPropertyProject.class:1595
#: FOption.class:862 FPropertyProject.class:1594
msgid "Yes"
msgstr ""
@ -2989,7 +2989,7 @@ msgstr ""
msgid "Default tab size"
msgstr ""
#: FOption.class:958 FPropertyProject.class:1570
#: FOption.class:958 FPropertyProject.class:1569
msgid "space(s)"
msgstr ""
@ -3236,47 +3236,47 @@ msgstr ""
msgid "<b>&1</b> does not export any class."
msgstr ""
#: FPropertyProject.class:1489
#: FPropertyProject.class:1488
msgid "Version"
msgstr ""
#: FPropertyProject.class:1533
#: FPropertyProject.class:1532
msgid "Author(s)"
msgstr ""
#: FPropertyProject.class:1547
#: FPropertyProject.class:1546
msgid "Edition"
msgstr ""
#: FPropertyProject.class:1558
#: FPropertyProject.class:1557
msgid "Tab size"
msgstr ""
#: FPropertyProject.class:1578
#: FPropertyProject.class:1577
msgid "Compilation"
msgstr ""
#: FPropertyProject.class:1589
#: FPropertyProject.class:1588
msgid "Module symbols are public by default"
msgstr ""
#: FPropertyProject.class:1606
#: FPropertyProject.class:1605
msgid "Form controls are public"
msgstr ""
#: FPropertyProject.class:1623
#: FPropertyProject.class:1622
msgid "Get version from program"
msgstr ""
#: FPropertyProject.class:1636 FTranslate.class:1520
#: FPropertyProject.class:1635 FTranslate.class:1520
msgid "Translation"
msgstr ""
#: FPropertyProject.class:1647
#: FPropertyProject.class:1646
msgid "Project is translatable"
msgstr ""
#: FPropertyProject.class:1664
#: FPropertyProject.class:1663
msgid "Default language"
msgstr ""
@ -3341,46 +3341,46 @@ msgid "Libraries"
msgstr ""
#: FPropertyProject.class:1832
msgid "&Insert..."
msgid "&Add..."
msgstr ""
#: FPropertyProject.class:1864
msgid "Environment"
msgstr ""
#: FPropertyProject.class:1877
#: FPropertyProject.class:1874
msgid "Arguments"
msgstr ""
#: FPropertyProject.class:1920
#: FPropertyProject.class:1917
msgid "Environment variables"
msgstr ""
#: FPropertyProject.class:1954
#: FPropertyProject.class:1950
msgid "Changes since last commit"
msgstr ""
#: FPropertyProject.class:1967
#: FPropertyProject.class:1963
msgid "There is no change to commit."
msgstr ""
#: FPropertyProject.class:1976
#: FPropertyProject.class:1972
msgid "&Update"
msgstr ""
#: FPropertyProject.class:1982
#: FPropertyProject.class:1978
msgid "&Revert..."
msgstr ""
#: FPropertyProject.class:1988
#: FPropertyProject.class:1984
msgid "&Commit..."
msgstr ""
#: FPropertyProject.class:1998
#: FPropertyProject.class:1994
msgid "Features"
msgstr ""
#: FPropertyProject.class:2083
#: FPropertyProject.class:2079
msgid "Remove All"
msgstr ""
@ -3446,11 +3446,11 @@ msgstr ""
msgid "Search & Replace"
msgstr ""
#: FSearch.class:390
#: FSearch.class:375
msgid "Search string replaced once."
msgstr ""
#: FSearch.class:392
#: FSearch.class:377
msgid "Search string replaced &1 times."
msgstr ""

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
# Gambas Form File 3.0
{ Form Form
MoveScaled(0,0,88,75)
MoveScaled(0,0,89,75)
Icon = Picture["img/16/form.png"]
Persistent = True
Arrangement = Arrange.Vertical

View File

@ -5,7 +5,7 @@
Arrangement = Arrange.Vertical
Spacing = True
{ panTool ScrollView
MoveScaled(3,6,24,31)
MoveScaled(3,6,21,30)
Expand = True
Arrangement = Arrange.Row
Border = False

View File

@ -500,7 +500,7 @@
Visible = False
}
{ ToolBar1 ToolBar
MoveScaled(0,0,164,4)
MoveScaled(0,1,163,4)
AutoResize = False
Key = "main"
Separator = True

View File

@ -134,22 +134,7 @@ End
Public Sub Form_Show()
Dim sFind As String
Update()
Try sFind = $hCurrent.GetSelection()
If sFind Then cmbSearch.Text = sFind
If $bReplace And If cmbSearch.Text Then
cmbReplace.SelectAll
cmbReplace.SetFocus
Else
cmbSearch.SelectAll
cmbSearch.SetFocus
Endif
ShowString
End
@ -616,9 +601,24 @@ End
Public Sub WakeUp(bReplace As Boolean)
Dim sFind As String
$bReplace = bReplace
Me.Show
tabSearch.Index = 0
Update()
Try sFind = $hCurrent.GetSelection()
If sFind Then cmbSearch.Text = sFind
If $bReplace And If cmbSearch.Text Then
cmbReplace.SelectAll
cmbReplace.SetFocus
Else
cmbSearch.SelectAll
cmbSearch.SetFocus
Endif
End

View File

@ -184,6 +184,7 @@
MoveScaled(47,0,36,4)
Expand = True
ReadOnly = True
Sorted = True
}
}
{ Label9 Label
@ -318,7 +319,7 @@
Spacing = True
{ btnInsertLib Button
MoveScaled(0,0,17,4)
Text = ("&Insert...")
Text = ("&Add...")
Picture = Picture["icon:/small/add"]
}
{ btnRemoveLib Button
@ -350,69 +351,66 @@
MoveScaled(1,1,84,72)
Expand = True
Spacing = True
{ VBox2 VBox
MoveScaled(2,1,58,8)
{ Label17 Label
MoveScaled(0,0,24,4)
Font = Font["Bold"]
Text = ("Arguments")
}
{ HBox2 HBox
MoveScaled(0,4,53,4)
Spacing = True
{ btnInsertArg Button
MoveScaled(0,0,17,4)
Text = ("&Insert")
Picture = Picture["icon:/small/add"]
}
{ btnRemoveArg Button
MoveScaled(18,0,17,4)
Text = ("&Remove")
Picture = Picture["icon:/small/remove"]
}
{ btnMoveUpArg Button
MoveScaled(36,0,6,4)
Picture = Picture["icon:/small/up"]
}
{ btnMoveDownArg Button
MoveScaled(42,0,6,4)
Picture = Picture["icon:/small/down"]
}
}
{ Label17 Label
MoveScaled(3,2,24,3)
Font = Font["Bold"]
Text = ("Arguments")
}
{ tvwArg TableView
MoveScaled(2,10,46,16)
Expand = True
Header = GridView.Vertical
}
{ VBox3 VBox
MoveScaled(2,27,48,8)
{ Label18 Label
MoveScaled(0,0,24,4)
Font = Font["Bold"]
Text = ("Environment variables")
{ HBox2 HBox
MoveScaled(2,28,53,4)
Spacing = True
{ btnInsertArg Button
MoveScaled(0,0,17,4)
Text = ("&Insert")
Picture = Picture["icon:/small/add"]
}
{ HBox3 HBox
MoveScaled(0,4,40,4)
Spacing = True
{ btnInsertEnv Button
MoveScaled(0,0,17,4)
Text = ("&Insert")
Picture = Picture["icon:/small/add"]
}
{ btnRemoveEnv Button
MoveScaled(18,0,17,4)
Text = ("&Remove")
Picture = Picture["icon:/small/remove"]
}
{ btnRemoveArg Button
MoveScaled(18,0,17,4)
Text = ("&Remove")
Picture = Picture["icon:/small/remove"]
}
{ btnMoveUpArg Button
MoveScaled(36,0,6,4)
Picture = Picture["icon:/small/up"]
}
{ btnMoveDownArg Button
MoveScaled(42,0,6,4)
Picture = Picture["icon:/small/down"]
}
}
{ Separator1 Separator
MoveScaled(7,38,42,1)
}
{ Label18 Label
MoveScaled(2,47,24,3)
Font = Font["Bold"]
Text = ("Environment variables")
}
{ tvwEnv TableView
MoveScaled(2,37,47,14)
MoveScaled(2,52,47,14)
Expand = True
Header = GridView.Horizontal
Scrollbar = Scroll.Vertical
}
{ HBox3 HBox
MoveScaled(2,67,40,4)
Spacing = True
{ btnInsertEnv Button
MoveScaled(0,0,17,4)
Text = ("&Insert")
Picture = Picture["icon:/small/add"]
}
{ btnRemoveEnv Button
MoveScaled(18,0,17,4)
Text = ("&Remove")
Picture = Picture["icon:/small/remove"]
}
}
}
Index = 5
Text = ("Versioning")
@ -428,7 +426,7 @@
ReadOnly = True
}
{ lblNoDiff TextLabel
MoveScaled(3,8,80,5)
MoveScaled(3,9,80,5)
Expand = True
Text = ("There is no change to commit.")
}

View File

@ -2,7 +2,6 @@
{ Form Form
MoveScaled(0,0,81,6)
Text = ("")
Resizable = False
{ dwgHandle DrawingArea
MoveScaled(1,1,3,3)

View File

@ -208,6 +208,10 @@ msgstr ""
msgid "The '/' character is forbidden inside file or directory names."
msgstr ""
#: .project:1
msgid "More controls for graphical components"
msgstr ""
#: Wizard.class:76
msgid "Step #&1"
msgstr ""

View File

@ -1,5 +1,5 @@
# Gambas Project File 3.0
# Compiled with Gambas 2.99.0 (r2896)
# Compiled with Gambas 2.99.0 (r2917)
Title=More controls for graphical components
Startup=FMain
StackTrace=1

View File

@ -33,6 +33,8 @@ Public Sub _new()
$bVisible = True
$iOrientation = Align.Top
'btnSide.Transparent = True
'btnSide2.Transparent = True
End
@ -320,8 +322,8 @@ Public Sub btnSide_MouseUp()
If Me.Parent.Design Then Return
Last.Tag = 1
Last.Refresh
'Last.Tag = 1
'Last.Refresh
TogglePanel
@ -509,27 +511,27 @@ End
'
' END
Public Sub panMove_Enter()
$iColor = panMove.Background
If Not $bVisible Then Return
If $bFixed Then Return
If Me.Parent.Design Then Return
panMove.Background = Color.ButtonBackground
'btnSide.Background = Color.ButtonBackground
'btnSide2.Background = Color.ButtonBackground
End
Public Sub panMove_Leave()
panMove.Background = $iColor
'btnSide.Background = $iColor
'btnSide2.Background = $iColor
End
' Public Sub panMove_Enter()
'
' $iColor = panMove.Background
'
' If Not $bVisible Then Return
' If $bFixed Then Return
' If Me.Parent.Design Then Return
'
' 'panMove.Background = Color.ButtonBackground
' 'btnSide.Background = Color.ButtonBackground
' 'btnSide2.Background = Color.ButtonBackground
'
' End
'
' Public Sub panMove_Leave()
'
' 'panMove.Background = $iColor
' 'btnSide.Background = $iColor
' 'btnSide2.Background = $iColor
'
' End
Public Sub btnSide_Draw()
@ -542,24 +544,26 @@ End
Public Sub btnSide_Enter()
Last.Background = Color.ButtonBackground
'Last.Background = Color.ButtonBackground
Last.Tag = 1
Last.Refresh
'Last.Tag = 1
'Last.Refresh
End
Public Sub btnSide_Leave()
Last.Background = Color.Default
'Last.Background = Color.Default
Last.Tag = Null
Last.Refresh
'Last.Tag = Null
'Last.Refresh
End
Public Sub btnSide_MouseDown()
Last.Tag = 2
Last.Refresh
'Last.Tag = 2
'Last.Refresh
End

View File

@ -2,24 +2,24 @@
{ Form Form
MoveScaled(8,16,50,50)
Text = ("")
Resizable = False
{ panMove DrawingArea
MoveScaled(2,1,46,4)
Background = Color.Background
{ panSide Panel
MoveScaled(6,11,35,33)
}
{ panMove Panel
MoveScaled(1,1,46,4)
{ btnSide DrawingArea
MoveScaled(10,0,6,4)
Mouse = Mouse.Pointing
}
{ btnSide2 DrawingArea btnSide
Name = "btnSide2"
MoveScaled(19,0,6,4)
Mouse = Mouse.Pointing
}
{ sepSide Separator
MoveScaled(0,0,9,1)
Visible = False
}
}
{ panSide Panel
MoveScaled(6,11,35,33)
}
}

View File

@ -18,9 +18,9 @@ SearchComment=False
SearchString=True
[OpenFile]
File[1]="/home/benoit/gambas/3.0/link/share/gambas3/examples/Games/GameOfLife/.src/CGameField.class:75.0"
File[2]="/home/benoit/gambas/3.0/link/share/gambas3/examples/Games/GameOfLife/.src/FMain.class:65.6"
Active=3
Active=1
File[1]="/home/benoit/gambas/3.0/link/share/gambas3/examples/Games/GameOfLife/.src/CGameField.class:26.12"
File[2]="/home/benoit/gambas/3.0/link/share/gambas3/examples/Games/GameOfLife/.src/FMain.class:23.9"
File[3]="/home/benoit/gambas/3.0/link/share/gambas3/examples/Games/GameOfLife/.src/FMain.form"
Count=3

View File

@ -24,7 +24,7 @@ Public Function Init(bSmall As Boolean, iLife As Integer, bSymetryH As Boolean,
If bSmall Then
size = 6
size = 7
For i = MaxX \ 2 - size To MaxX \ 2 + size
For j = MaxY \ 2 - size To MaxY \ 2 + size

View File

@ -136,14 +136,14 @@ BEGIN_PROPERTY(CDRAWINGAREA_painted)
END_PROPERTY
BEGIN_PROPERTY(CDRAWINGAREA_transparent)
/*BEGIN_PROPERTY(CDRAWINGAREA_transparent)
if (READ_PROPERTY)
GB.ReturnBoolean(WIDGET->isTransparent());
else
WIDGET->setTransparent(VPROP(GB_BOOLEAN));
END_PROPERTY
END_PROPERTY*/
GB_DESC CDrawingAreaDesc[] =
@ -158,7 +158,7 @@ GB_DESC CDrawingAreaDesc[] =
GB_PROPERTY("Merge","b",CDRAWINGAREA_merge),
GB_PROPERTY("Focus","b",CDRAWINGAREA_focus),
GB_PROPERTY("Painted", "b", CDRAWINGAREA_painted),
GB_PROPERTY("Transparent", "b", CDRAWINGAREA_transparent),
//GB_PROPERTY("Transparent", "b", CDRAWINGAREA_transparent),
GB_METHOD("Clear", 0, CDRAWINGAREA_clear, 0),

View File

@ -90,6 +90,8 @@ gDrawingArea::gDrawingArea(gContainer *parent) : gContainer(parent)
g_signal_connect(G_OBJECT(widget), "size-allocate", G_CALLBACK(cb_size), (gpointer)this);
g_signal_connect(G_OBJECT(border), "button-press-event",G_CALLBACK(cb_button_press),(gpointer)this);
setTransparent(true);
//resize(100,30);
}

View File

@ -443,6 +443,27 @@ void CCONTAINER_insert_child(void *_object)
GB.Raise(parent, EVENT_Insert, 1, GB_T_OBJECT, THIS);
}
void CCONTAINER_decide(CWIDGET *control, bool *width, bool *height)
{
void *_object = CWIDGET_get_parent(control);
*width = *height = FALSE;
if (!THIS)
return;
if ((THIS_ARRANGEMENT->mode == ARRANGE_VERTICAL)
|| (THIS_ARRANGEMENT->mode == ARRANGE_HORIZONTAL && control->flag.expand)
|| (THIS_ARRANGEMENT->mode == ARRANGE_ROW && control->flag.expand))
*width = TRUE;
if ((THIS_ARRANGEMENT->mode == ARRANGE_HORIZONTAL)
|| (THIS_ARRANGEMENT->mode == ARRANGE_VERTICAL && control->flag.expand)
|| (THIS_ARRANGEMENT->mode == ARRANGE_COLUMN && control->flag.expand))
*height = TRUE;
}
/***************************************************************************
class MyContainer
@ -452,8 +473,9 @@ void CCONTAINER_insert_child(void *_object)
MyContainer::MyContainer(QWidget *parent)
: QWidget(parent),_frame(0),_pixmap(0)
{
setAttribute(Qt::WA_StaticContents);
setAttribute(Qt::WA_OpaquePaintEvent); //, _pixmap != 0);
//setStaticContents(true);
//setAttribute(Qt::WA_StaticContents);
//setAttribute(Qt::WA_OpaquePaintEvent); //, _pixmap != 0);
}
MyContainer::~MyContainer()
@ -465,7 +487,12 @@ MyContainer::~MyContainer()
void MyContainer::setPixmap(QPixmap *pixmap)
{
_pixmap = pixmap;
if (_pixmap != pixmap)
{
_pixmap = pixmap;
setAttribute(Qt::WA_OpaquePaintEvent, _pixmap != 0);
setStaticContents(_pixmap != 0);
}
}
void MyContainer::showEvent(QShowEvent *e)
@ -495,7 +522,8 @@ void MyContainer::hideEvent(QHideEvent *e)
void MyContainer::setStaticContents(bool on)
{
setAttribute(Qt::WA_StaticContents, on && _frame == BORDER_NONE);
void *_object = CWidget::get(this);
setAttribute(Qt::WA_StaticContents, on && _frame == BORDER_NONE && (_pixmap || THIS->widget.flag.fillBackground));
}
void MyContainer::setFrameStyle(int frame)
@ -596,93 +624,14 @@ int MyContainer::frameWidth()
}
}
#if 0
Q_D(QFrame);
QPoint p1, p2;
QStyleOptionFrame opt;
opt.init(this);
int frameShape = d->frameStyle & QFrame::Shape_Mask;
int frameShadow = d->frameStyle & QFrame::Shadow_Mask;
int lw = 0;
int mlw = 0;
opt.rect = frameRect();
switch (frameShape) {
case QFrame::Box:
case QFrame::HLine:
case QFrame::VLine:
case QFrame::StyledPanel:
lw = d->lineWidth;
mlw = d->midLineWidth;
break;
default:
// most frame styles do not handle customized line and midline widths
// (see updateFrameWidth()).
lw = d->frameWidth;
break;
}
opt.lineWidth = lw;
opt.midLineWidth = mlw;
if (frameShadow == Sunken)
opt.state |= QStyle::State_Sunken;
else if (frameShadow == Raised)
opt.state |= QStyle::State_Raised;
switch (frameShape) {
case Box:
if (frameShadow == Plain)
qDrawPlainRect(p, opt.rect, opt.palette.foreground().color(), lw);
else
qDrawShadeRect(p, opt.rect, opt.palette, frameShadow == Sunken, lw, mlw);
break;
case StyledPanel:
style()->drawPrimitive(QStyle::PE_Frame, &opt, p, this);
break;
case Panel:
if (frameShadow == Plain)
qDrawPlainRect(p, opt.rect, opt.palette.foreground().color(), lw);
else
qDrawShadePanel(p, opt.rect, opt.palette, frameShadow == Sunken, lw);
break;
case WinPanel:
if (frameShadow == Plain)
qDrawPlainRect(p, opt.rect, opt.palette.foreground().color(), lw);
else
qDrawWinPanel(p, opt.rect, opt.palette, frameShadow == Sunken);
break;
case HLine:
case VLine:
if (frameShape == HLine) {
p1 = QPoint(opt.rect.x(), opt.rect.height() / 2);
p2 = QPoint(opt.rect.x() + opt.rect.width(), p1.y());
} else {
p1 = QPoint(opt.rect.x()+opt.rect.width() / 2, 0);
p2 = QPoint(p1.x(), opt.rect.height());
}
if (frameShadow == Plain) {
QPen oldPen = p->pen();
p->setPen(QPen(opt.palette.foreground().color(), lw));
p->drawLine(p1, p2);
p->setPen(oldPen);
} else {
qDrawShadeLine(p, p1, p2, opt.palette, frameShadow == Sunken, lw, mlw);
}
break;
}
}
#endif
void MyContainer::paintEvent(QPaintEvent *e)
{
QPainter painter(this);
if (_pixmap)
painter.drawTiledPixmap(0, 0, width(), height(), *_pixmap);
else
painter.eraseRect(e->rect());
//else
// painter.eraseRect(e->rect());
drawFrame(&painter);
}

View File

@ -104,6 +104,7 @@ void CCONTAINER_get_max_size(void *_object, int *w, int *h);
void CCONTAINER_insert_child(void *_object);
void CCONTAINER_remove_child(void *_object);
void CCONTAINER_draw_frame(QPainter *p, int frame, QStyleOptionFrame &opt, QWidget *w = 0);
void CCONTAINER_decide(CWIDGET *control, bool *width, bool *height);
class MyContainer : public QWidget
{

View File

@ -55,7 +55,6 @@ MyDrawingArea::MyDrawingArea(QWidget *parent) : MyContainer(parent)
_use_paint = false;
_set_background = false;
_cached = false;
_transparent = false;
setMerge(false);
setCached(false);
@ -66,8 +65,6 @@ MyDrawingArea::MyDrawingArea(QWidget *parent) : MyContainer(parent)
setAttribute(Qt::WA_DontCreateNativeAncestors, true);
//setAttribute(Qt::WA_NoSystemBackground, true);
setTransparent(false);
}
@ -153,10 +150,10 @@ void MyDrawingArea::redraw(QRect &r, bool frame)
p = DRAW_get_current();
}
if (!isTransparent())
/*if (!isTransparent())
{
p->translate(-r.x(), -r.y());
}
}*/
if (!_use_paint)
{
@ -208,20 +205,20 @@ void MyDrawingArea::paintEvent(QPaintEvent *event)
r = event->rect().intersect(rect());
if (r.isValid())
{
if (!isTransparent())
/*if (!isTransparent())
{
cache = new QPixmap(r.width(), r.height());
cache->fill(this, r.x(), r.y());
}
}*/
redraw(r, true);
if (!isTransparent())
/*if (!isTransparent())
{
paint.drawPixmap(r.x(), r.y(), *cache);
delete cache;
cache = 0;
}
}*/
}
}
}
@ -326,7 +323,7 @@ void MyDrawingArea::updateCache()
if (_background)
delete _background;
if (_cached && !_transparent)
if (_cached) // && !_transparent)
{
_background = new QPixmap(width(), height());
clearBackground();
@ -362,11 +359,11 @@ void MyDrawingArea::setPalette(const QPalette &pal)
repaint();
}
void MyDrawingArea::setTransparent(bool on)
/*void MyDrawingArea::setTransparent(bool on)
{
_transparent = on;
updateCache();
}
}*/
void MyDrawingArea::hideEvent(QHideEvent *e)
{
@ -468,6 +465,7 @@ BEGIN_PROPERTY(CDRAWINGAREA_painted)
END_PROPERTY
#if 0
BEGIN_PROPERTY(CDRAWINGAREA_transparent)
if (READ_PROPERTY)
@ -480,6 +478,7 @@ BEGIN_PROPERTY(CDRAWINGAREA_transparent)
}
END_PROPERTY
#endif
BEGIN_METHOD(DrawingArea_Refresh, GB_INTEGER x; GB_INTEGER y; GB_INTEGER w; GB_INTEGER h)
@ -514,7 +513,7 @@ GB_DESC CDrawingAreaDesc[] =
GB_PROPERTY("Focus", "b", CDRAWINGAREA_focus),
GB_PROPERTY("Enabled", "b", CDRAWINGAREA_enabled),
GB_PROPERTY("Painted", "b", CDRAWINGAREA_painted),
GB_PROPERTY("Transparent", "b", CDRAWINGAREA_transparent),
//GB_PROPERTY("Transparent", "b", CDRAWINGAREA_transparent),
GB_METHOD("Clear", NULL, CDRAWINGAREA_clear, NULL),
GB_METHOD("Refresh", NULL, DrawingArea_Refresh, "[(X)i(Y)i(Width)i(Height)i]"),

View File

@ -90,8 +90,8 @@ public:
void setPaint(bool on) { _use_paint = on; }
void redraw(QRect &r, bool frame = false);
bool isTransparent() { return _transparent; }
void setTransparent(bool on);
//bool isTransparent() { return _transparent; }
//void setTransparent(bool on);
protected:

View File

@ -57,7 +57,7 @@ BEGIN_METHOD(CLABEL_new, GB_OBJECT parent)
wid->setTextFormat(Qt::PlainText);
wid->setAlignment(Qt::AlignLeft | Qt::AlignVCenter); // + Qt::WordBreak);
THIS->widget.flag.fillBackground = TRUE;
//THIS->widget.flag.fillBackground = TRUE;
CWIDGET_new(wid, (void *)_object);
@ -71,7 +71,7 @@ BEGIN_METHOD(CTEXTLABEL_new, GB_OBJECT parent)
wid->setTextFormat(Qt::RichText);
wid->setAlignment(Qt::AlignLeft | Qt::AlignTop);
wid->setWordWrap(true);
THIS->widget.flag.fillBackground = TRUE;
//THIS->widget.flag.fillBackground = TRUE;
CWIDGET_new(wid, (void *)_object);
@ -139,12 +139,9 @@ END_METHOD
BEGIN_PROPERTY(CLABEL_transparent)
if (READ_PROPERTY)
GB.ReturnBoolean(!THIS->widget.flag.fillBackground);
GB.ReturnBoolean(THIS->transparent);
else
{
THIS->widget.flag.fillBackground = !VPROP(GB_BOOLEAN);
CWIDGET_reset_color((CWIDGET *)THIS);
}
THIS->transparent = VPROP(GB_BOOLEAN);
END_PROPERTY

View File

@ -50,6 +50,7 @@ extern GB_DESC CSeparatorDesc[];
typedef
struct {
CWIDGET widget;
bool transparent;
}
CLABEL;

View File

@ -716,7 +716,7 @@ void CMenu::slotTriggered(QAction *action)
if (menu->parent != parent)
return;
qDebug("slotTriggered: %s %s", menu->widget.name, (const char *)action->text().toUtf8());
//qDebug("slotTriggered: %s %s", menu->widget.name, (const char *)action->text().toUtf8());
GB.Ref(menu);
GB.Post((GB_POST_FUNC)send_click_event, (intptr_t)menu);
}

View File

@ -83,6 +83,7 @@ MyContents::MyContents(MyScrollView *scrollview)
sw = scrollview;
shown = THIS->widget.flag.shown;
sw->setWidget(this);
setAutoFillBackground(false);
THIS->widget.flag.shown = shown;
timer = false;
_mustfind = false;

View File

@ -87,7 +87,7 @@ CTab::CTab(CTABSTRIP *parent, QWidget *page)
visible = true;
setEnabled(true);
page->setAutoFillBackground(true);
//page->setAutoFillBackground(true);
page->hide();
}
@ -416,7 +416,7 @@ BEGIN_METHOD(CTABSTRIP_new, GB_OBJECT parent)
QObject::connect(wid, SIGNAL(currentChanged(int)), &CTabStrip::manager, SLOT(currentChanged(int)));
THIS->widget.flag.fillBackground = TRUE;
//THIS->widget.flag.fillBackground = TRUE;
THIS->container = NULL;
THIS->index = -1;

View File

@ -155,6 +155,12 @@ static void set_design(CWIDGET *_object)
if (cont && cont != THIS)
set_design_object(cont);
}
if (GB.Is(THIS, CLASS_TabStrip))
{
THIS->flag.fillBackground = TRUE;
CWIDGET_reset_color(THIS);
}
}
static void set_name(CWIDGET *_object, const char *name)
@ -399,6 +405,7 @@ void CWIDGET_resize(void *_object, int w, int h)
QWidget *wid = get_widget_resize(THIS);
bool window;
bool resizable = true;
bool decide_w, decide_h;
if (!wid)
return;
@ -408,10 +415,12 @@ void CWIDGET_resize(void *_object, int w, int h)
if (w < 0 && h < 0)
return;
if (w < 0)
CCONTAINER_decide(THIS, &decide_w, &decide_h);
if (w < 0 || decide_w)
w = wid->width();
if (h < 0)
if (h < 0 || decide_h)
h = wid->height();
if (w == wid->width() && h == wid->height())
@ -894,10 +903,10 @@ BEGIN_METHOD(CCONTROL_refresh, GB_INTEGER x; GB_INTEGER y; GB_INTEGER w; GB_INTE
y = VARG(y);
w = VARGOPT(w, QWIDGET(_object)->width());
h = VARGOPT(h, QWIDGET(_object)->height());
QWIDGET(_object)->repaint(x, y, w, h);
QWIDGET(_object)->update(x, y, w, h);
}
else
QWIDGET(_object)->repaint();
QWIDGET(_object)->update();
END_METHOD
@ -1402,7 +1411,7 @@ BEGIN_PROPERTY(CWIDGET_border_full)
wid->setFrameStyle(border);
wid->setLineWidth(lw);
wid->repaint();
wid->update();
}
END_PROPERTY
@ -1433,7 +1442,7 @@ BEGIN_PROPERTY(CWIDGET_border_simple)
//qDebug("--> %d", wid->frameStyle());
wid->repaint();
wid->update();
}
END_PROPERTY
@ -1867,7 +1876,7 @@ static void handle_focus_change()
bool CWidget::eventFilter(QObject *widget, QEvent *event)
{
CWIDGET *control, *save;
CWIDGET *control;
int event_id;
int type = event->type();
bool real;

View File

@ -126,7 +126,7 @@ bool CWINDOW_has_property(QWidget *w, Atom property)
#endif
// Fix a QT little boring visual bug on menubars
#if 0
void CWINDOW_fix_menubar(CWINDOW *window)
{
if (window && window->menuBar)
@ -139,6 +139,7 @@ void CWINDOW_fix_menubar(CWINDOW *window)
save->setFocus();
}
}
#endif
/*---- Utility routines --------------------------------------------------------------*/
@ -317,7 +318,7 @@ BEGIN_METHOD(CWINDOW_new, GB_OBJECT parent)
#endif
const char *name = GB.GetClassName(THIS);
THIS->widget.flag.fillBackground = true;
//THIS->widget.flag.fillBackground = true;
if (MISSING(parent) || !VARG(parent))
{

View File

@ -231,6 +231,6 @@ void CWINDOW_activate(CWIDGET *ob);
void CWINDOW_set_default_button(CWINDOW *win, QPushButton *button, bool on);
void CWINDOW_set_cancel_button(CWINDOW *win, QPushButton *button, bool on);
void CWINDOW_define_mask(CWINDOW *_object);
void CWINDOW_fix_menubar(CWINDOW *window);
//void CWINDOW_fix_menubar(CWINDOW *window);
#endif