[CONFIGURATION]
* NEW: gb.qt5 component. [EXAMPLES] * BUG: Fix WebBrowser example. [INTERPRETER] * NEW: Fix compilation of EXEC and SHELL for older bytecode versions. [GB.DB.FORM] * NEW: Display the busy mouse cursor while loading SQL data. [GB.QT4] * NEW: Support for QT5. [GB.QT5] * NEW: Initial version of the QT5 component. Not everything is working. There is no Embedder and TrayIcon controls. git-svn-id: svn://localhost/gambas/trunk@7062 867c0c6c-44f3-4631-809d-bfa615b0a4ec
@ -19,6 +19,7 @@ SUBDIRS = \
|
||||
@v4l_dir@ \
|
||||
@crypt_dir@ \
|
||||
@qt4_dir@ \
|
||||
@qt5_dir@ \
|
||||
@gtk_dir@ \
|
||||
@gtk3_dir@ \
|
||||
@opengl_dir@ \
|
||||
|
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 3.1 KiB |
@ -1,8 +1,7 @@
|
||||
# Gambas Project File 3.0
|
||||
# Compiled with Gambas 3.5.90
|
||||
# Compiled with Gambas 3.7.90
|
||||
Title=Invaders
|
||||
Startup=MMain
|
||||
UseTerminal=1
|
||||
Icon=invaders.png
|
||||
Version=3.6.2
|
||||
Component=gb.ncurses
|
||||
@ -10,4 +9,5 @@ Description="Variant of space invaders using gb.ncurses. Inspired by http://www.
|
||||
Authors="(C) 2013 Tobias Boege <tobias@gambas-buch.de>"
|
||||
Environment="LINES=24\nCOLUMNS=80"
|
||||
TabSize=2
|
||||
Language=fr
|
||||
Packager=1
|
||||
|
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 3.1 KiB |
@ -1,5 +1,5 @@
|
||||
# Gambas Project File 3.0
|
||||
# Compiled with Gambas 3.5.90
|
||||
# Compiled with Gambas 3.7.90
|
||||
Title=Pong
|
||||
Startup=MMain
|
||||
UseTerminal=1
|
||||
@ -8,6 +8,7 @@ Version=3.6.2
|
||||
Component=gb.ncurses
|
||||
Description="The Pong game as a gb.ncurses example."
|
||||
Authors="(C) 2013 Tobias Boege <tobias@gambas-buch.de>"
|
||||
Environment="LINES=25\nCOLUMNS=80"
|
||||
TabSize=2
|
||||
Translate=1
|
||||
Language=en_GB
|
||||
|
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 3.6 KiB |
@ -1,24 +1,26 @@
|
||||
# Gambas Project File 3.0
|
||||
# Compiled with Gambas 3.5.90
|
||||
# Compiled with Gambas 3.7.90
|
||||
Title=Light browser based on WebKit component
|
||||
Startup=FBrowser
|
||||
Icon=konqueror.png
|
||||
Version=3.6.2
|
||||
VersionFile=1
|
||||
Icon=icon.png
|
||||
Version=1.0.1
|
||||
Component=gb.image
|
||||
Component=gb.qt4
|
||||
Component=gb.form
|
||||
Component=gb.desktop.x11
|
||||
Component=gb.desktop
|
||||
Component=gb.form.dialog
|
||||
Component=gb.qt4.webkit
|
||||
Description="Light browser based on the QT4 Webkit component"
|
||||
TabSize=2
|
||||
Translate=1
|
||||
Language=fr
|
||||
Maintainer=benoit
|
||||
Vendor=Princeton
|
||||
Vendor=Example
|
||||
Address=benoit@desnouettes
|
||||
License=General Public Licence
|
||||
Packager=1
|
||||
Systems=mandriva
|
||||
Menus=mandriva:"More Applications/Development/Other"
|
||||
Groups=mandriva:"Development/Other"
|
||||
Tags=Network,Web,WebBrowser
|
||||
|
@ -227,17 +227,25 @@ Private Sub CreateView()
|
||||
|
||||
Object.Lock(tabBrowser)
|
||||
Inc tabBrowser.Count
|
||||
Object.Lock(tabBrowser)
|
||||
tabBrowser[iLast + 1].Picture = tabBrowser[iLast].Picture
|
||||
tabBrowser[iLast + 1].Text = tabBrowser[iLast].Text
|
||||
tabBrowser[iLast].Text = ""
|
||||
tabBrowser[iLast].Picture = Null
|
||||
tabBrowser[iLast].Closable = True
|
||||
Object.Lock(tabBrowser)
|
||||
tabBrowser.Index = iLast
|
||||
hView = New WebView(tabBrowser) As "WebView"
|
||||
hView.Tag = tabBrowser.Index
|
||||
hView.Editable = btnEdit.Value
|
||||
hView.Resize(1, 1)
|
||||
'hView.Show
|
||||
'Print WebSettings.Fonts.FixedFont
|
||||
Object.Unlock(tabBrowser)
|
||||
Object.Unlock(tabBrowser)
|
||||
Object.Unlock(tabBrowser)
|
||||
tabBrowser_Click
|
||||
txtURL.SetFocus
|
||||
|
||||
End
|
||||
|
||||
|
@ -1,10 +1,9 @@
|
||||
# Gambas Form File 3.0
|
||||
|
||||
{ Form Form
|
||||
MoveScaled(0,0,117,85)
|
||||
MoveScaled(0,0,169,98)
|
||||
Text = ("Gambas WebKit")
|
||||
Icon = Picture["icon:/small/gambas"]
|
||||
Maximized = True
|
||||
Arrangement = Arrange.Vertical
|
||||
{ mnuFont Menu
|
||||
{ mnuSelectFont Menu mnuSelectFont
|
||||
@ -51,36 +50,46 @@
|
||||
MoveScaled(4,0,4,4)
|
||||
Picture = Picture["icon:/small/right"]
|
||||
}
|
||||
{ btnStop ToolButton
|
||||
MoveScaled(8,0,4,4)
|
||||
Picture = Picture["icon:/small/delete"]
|
||||
{ Separator9 Separator
|
||||
MoveScaled(9,0,0,4)
|
||||
}
|
||||
{ btnReload ToolButton
|
||||
MoveScaled(12,0,4,4)
|
||||
ToolTip = ("Refresh")
|
||||
Picture = Picture["icon:/small/refresh"]
|
||||
}
|
||||
{ btnClear ToolButton
|
||||
MoveScaled(16,0,4,4)
|
||||
Picture = Picture["icon:/small/clear"]
|
||||
}
|
||||
{ txtURL TextBox
|
||||
MoveScaled(20,0,32,4)
|
||||
{ Panel2 HBox
|
||||
MoveScaled(12,0,44,4)
|
||||
Background = Color.TextBackground
|
||||
Expand = True
|
||||
{ txtURL TextBox
|
||||
MoveScaled(0,0,28,4)
|
||||
Expand = True
|
||||
Border = False
|
||||
}
|
||||
{ btnClear ToolButton
|
||||
MoveScaled(28,0,4,4)
|
||||
Picture = Picture["icon:/small/clear"]
|
||||
}
|
||||
{ btnStop ToolButton
|
||||
MoveScaled(33,0,4,4)
|
||||
Picture = Picture["icon:/small/delete"]
|
||||
}
|
||||
{ btnReload ToolButton
|
||||
MoveScaled(38,0,4,4)
|
||||
ToolTip = ("Refresh")
|
||||
Picture = Picture["icon:/small/refresh"]
|
||||
}
|
||||
}
|
||||
{ btnGo ToolButton
|
||||
MoveScaled(52,0,4,4)
|
||||
MoveScaled(57,0,4,4)
|
||||
Visible = False
|
||||
Picture = Picture["icon:/small/apply"]
|
||||
}
|
||||
{ Separator1 Separator
|
||||
MoveScaled(62,0,0,4)
|
||||
}
|
||||
{ btnEdit ToolButton
|
||||
MoveScaled(60,0,4,4)
|
||||
MoveScaled(64,0,4,4)
|
||||
ToolTip = ("Toggle edit mode")
|
||||
Picture = Picture["icon:/small/edit"]
|
||||
Toggle = True
|
||||
}
|
||||
{ Separator1 Separator
|
||||
MoveScaled(67,0,1,4)
|
||||
}
|
||||
{ btnZoomIn ToolButton
|
||||
MoveScaled(69,0,4,4)
|
||||
Picture = Picture["icon:/small/zoom-in"]
|
||||
@ -94,7 +103,7 @@
|
||||
Picture = Picture["icon:/small/zoom-normal"]
|
||||
}
|
||||
{ Separator2 Separator
|
||||
MoveScaled(81,0,1,4)
|
||||
MoveScaled(81,0,0,4)
|
||||
}
|
||||
{ btnFind ToolButton
|
||||
MoveScaled(83,0,4,4)
|
||||
@ -275,13 +284,17 @@
|
||||
MenuOnly = True
|
||||
}
|
||||
}
|
||||
{ tabBrowser TabStrip
|
||||
MoveScaled(1,11,76,43)
|
||||
{ Separator8 Separator
|
||||
MoveScaled(8,12,17,0)
|
||||
}
|
||||
{ tabBrowser TabPanel
|
||||
MoveScaled(1,14,76,40)
|
||||
Expand = True
|
||||
Arrangement = Arrange.Fill
|
||||
Closable = True
|
||||
Border = False
|
||||
Index = 0
|
||||
Text = ("")
|
||||
Picture = Picture["icon:/small/add"]
|
||||
Index = 0
|
||||
}
|
||||
{ panFind HBox
|
||||
|
@ -1,27 +1,34 @@
|
||||
# Gambas Form File 3.0
|
||||
|
||||
{ Form Form
|
||||
MoveScaled(0,0,68,11)
|
||||
Arrangement = Arrange.Vertical
|
||||
MoveScaled(0,0,69,13)
|
||||
Arrangement = Arrange.Fill
|
||||
Margin = True
|
||||
{ lblTitle Label
|
||||
MoveScaled(1,1,48,3)
|
||||
Expand = True
|
||||
Text = ("Starting download...")
|
||||
}
|
||||
{ lblStatus Label
|
||||
MoveScaled(1,4,11,2)
|
||||
Font = Font["Italic,-2"]
|
||||
}
|
||||
{ HBox2 HBox
|
||||
MoveScaled(1,6,65,4)
|
||||
{ pgbDownload ProgressBar
|
||||
MoveScaled(0,0,56,4)
|
||||
{ Panel1 Panel
|
||||
MoveScaled(1,1,67,11)
|
||||
Background = Color.Background
|
||||
Arrangement = Arrange.Vertical
|
||||
Margin = True
|
||||
Border = Border.Plain
|
||||
{ lblTitle Label
|
||||
MoveScaled(1,1,48,3)
|
||||
Expand = True
|
||||
Text = ("Starting download...")
|
||||
}
|
||||
{ btnAbort ToolButton
|
||||
MoveScaled(61,0,4,4)
|
||||
Picture = Picture["icon:/small/close"]
|
||||
{ lblStatus Label
|
||||
MoveScaled(1,4,11,2)
|
||||
Font = Font["Italic,-2"]
|
||||
}
|
||||
{ HBox2 HBox
|
||||
MoveScaled(1,6,65,4)
|
||||
{ pgbDownload ProgressBar
|
||||
MoveScaled(0,0,56,4)
|
||||
Expand = True
|
||||
}
|
||||
{ btnAbort ToolButton
|
||||
MoveScaled(61,0,4,4)
|
||||
Picture = Picture["icon:/small/close"]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 2.9 KiB |
@ -1,9 +1,9 @@
|
||||
# Gambas Project File 3.0
|
||||
# Compiled with Gambas 3.6.90
|
||||
# Compiled with Gambas 3.7.90
|
||||
Title=gambas3-farm-server
|
||||
Startup=MMain
|
||||
Icon=logo.png
|
||||
Version=3.6.90
|
||||
Version=3.7.90
|
||||
VersionFile=1
|
||||
Component=gb.image
|
||||
Component=gb.db
|
||||
|
@ -1,6 +1,6 @@
|
||||
' Gambas class file
|
||||
|
||||
Public LIMIT_INC As Integer = 128
|
||||
Public LIMIT_INC As Integer = 256
|
||||
|
||||
Event CacheResize()
|
||||
|
||||
@ -113,12 +113,15 @@ Private Sub LoadUntil(iIndex As Integer)
|
||||
|
||||
If iIndex < $aVal.Count Then Return
|
||||
|
||||
Inc Application.Busy
|
||||
|
||||
iLimit = (((iIndex - $aVal.Count) \ LIMIT_INC) + 1) * LIMIT_INC
|
||||
|
||||
aSort = GetSortKeys()
|
||||
|
||||
'sReq = "SELECT " & $aKey.Join(",") & " FROM " & $sTable
|
||||
'hReq = Request.Select($aKey).From($sTable).Where($sFilter).OrderBy(aSort)
|
||||
|
||||
hReq = $DB.SQL.Select($aKey).From($sTable).Where($sFilter).OrderBy(aSort)
|
||||
|
||||
If $aVal.Count = 0 Then
|
||||
@ -146,6 +149,8 @@ Private Sub LoadUntil(iIndex As Integer)
|
||||
Inc iPos
|
||||
rData.MoveNext
|
||||
Wend
|
||||
|
||||
Dec Application.Busy
|
||||
|
||||
Raise CacheResize
|
||||
|
||||
@ -191,6 +196,8 @@ Public Function _get(Index As Integer) As Result
|
||||
|
||||
If Not $rData Then
|
||||
|
||||
Inc Application.Busy
|
||||
|
||||
If $bRequest Then
|
||||
If $sSort Then
|
||||
'$rData = $DB.Exec($sTable & " ORDER BY " & $sSort & If($bAscent, "", " DESC"))
|
||||
@ -208,44 +215,50 @@ Public Function _get(Index As Integer) As Result
|
||||
$rData = $DB.Exec(hReq())
|
||||
Endif
|
||||
|
||||
Dec Application.Busy
|
||||
|
||||
Raise CacheResize
|
||||
|
||||
Endif
|
||||
|
||||
$rData.MoveTo(Index)
|
||||
Return $rData
|
||||
|
||||
Endif
|
||||
|
||||
LoadUntil(Index)
|
||||
|
||||
If Index >= $aVal.Count Then Return
|
||||
|
||||
If $rData Then
|
||||
$rData.MoveTo(Index - $iDataIndex)
|
||||
If $rData.Available Then Return $rData
|
||||
Endif
|
||||
|
||||
' 154,32 e + 10
|
||||
'$iDataIndex = Max(0, ((Index - (LIMIT_INC \ 2)) \ LIMIT_INC) * LIMIT_INC)
|
||||
$iDataIndex = Max(0, Index - (LIMIT_INC \ 2))
|
||||
|
||||
aSort = GetSortKeys()
|
||||
|
||||
If $iDataIndex = 0 Then
|
||||
hReq = $DB.SQL.Select(aCol).From($sTable).Where($sFilter).OrderBy(aSort)
|
||||
Else
|
||||
hReq = $DB.SQL.Select(aCol).From($sTable).Where($sFilter).Where(Common.MakeNextWhere(aSort, $aVal[$iDataIndex - 1])).OrderBy(aSort)
|
||||
Endif
|
||||
$rData = $DB.Limit(LIMIT_INC).Exec(hReq.Get())
|
||||
|
||||
'hReq = Request().Where($sFilter).Where(Common.MakeNextWhere($aKey, $aVal[$iDataIndex]))
|
||||
'$rData = DB.Limit(LIMIT_INC).Edit($sTable, hReq.Get(DB))
|
||||
|
||||
$rData.MoveTo(Index - $iDataIndex)
|
||||
LoadUntil(Index)
|
||||
|
||||
If Index >= $aVal.Count Then Return
|
||||
|
||||
If $rData Then
|
||||
$rData.MoveTo(Index - $iDataIndex)
|
||||
If $rData.Available Then Return $rData
|
||||
Endif
|
||||
|
||||
Inc Application.Busy
|
||||
|
||||
'$iDataIndex = Max(0, ((Index - (LIMIT_INC \ 2)) \ LIMIT_INC) * LIMIT_INC)
|
||||
$iDataIndex = Max(0, Index - (LIMIT_INC \ 2))
|
||||
|
||||
aSort = GetSortKeys()
|
||||
|
||||
If $iDataIndex = 0 Then
|
||||
hReq = $DB.SQL.Select(aCol).From($sTable).Where($sFilter).OrderBy(aSort)
|
||||
Else
|
||||
hReq = $DB.SQL.Select(aCol).From($sTable).Where($sFilter).Where(Common.MakeNextWhere(aSort, $aVal[$iDataIndex - 1])).OrderBy(aSort)
|
||||
Endif
|
||||
$rData = $DB.Limit(LIMIT_INC).Exec(hReq.Get())
|
||||
|
||||
'hReq = Request().Where($sFilter).Where(Common.MakeNextWhere($aKey, $aVal[$iDataIndex]))
|
||||
'$rData = DB.Limit(LIMIT_INC).Edit($sTable, hReq.Get(DB))
|
||||
|
||||
$rData.MoveTo(Index - $iDataIndex)
|
||||
|
||||
Dec Application.Busy
|
||||
|
||||
Endif
|
||||
|
||||
Return $rData
|
||||
|
||||
|
||||
End
|
||||
|
||||
Private Function Keys_Read() As String[]
|
||||
|
@ -17,11 +17,11 @@ Path="gb.desktop.gambas"
|
||||
LastCommit="[GB.DESKTOP]\n* BUG: Change the Mime loading code so it not fail on the first readed glob2 file\n and read all the available files.\n---- Cette ligne et les suivantes seront ignorées ----\n\nM .project\nM .settings\nM .src/DesktopMime.class\nM .src/Tests/Form11.form\nA .src/Tests/Module1.module\nM .startup"
|
||||
|
||||
[OpenFile]
|
||||
File[1]=".src/Desktop.class:589.0"
|
||||
Active=2
|
||||
File[1]=".src/Desktop.class:84.13"
|
||||
Active=3
|
||||
File[2]=".src/_Desktop_Passwords.class:71.46"
|
||||
Count=15
|
||||
File[3]=".src/Main.module:120.62"
|
||||
File[3]=".src/Main.module:10.62"
|
||||
File[4]="xdg-utils/xdg-open:343.37"
|
||||
File[5]=".src/DesktopMime.class:107.2"
|
||||
File[6]=".src/DesktopFile.class:462.0"
|
||||
|
@ -1,7 +1,7 @@
|
||||
# Gambas Project File 3.0
|
||||
# Compiled with Gambas 3.7.90
|
||||
Title=gb.gui.base
|
||||
Startup=FTestCombo
|
||||
Startup=FMain
|
||||
Version=3.7.90
|
||||
VersionFile=1
|
||||
Component=gb.image
|
||||
|
@ -10,6 +10,21 @@
|
||||
Text = ("Button1")
|
||||
}
|
||||
}
|
||||
{ HBox2 HBox
|
||||
MoveScaled(2,7,73,4)
|
||||
{ CheckBox1 CheckBox
|
||||
MoveScaled(1,1,20,3)
|
||||
Action = "test"
|
||||
}
|
||||
{ CheckBox2 CheckBox
|
||||
MoveScaled(22,1,20,3)
|
||||
Action = "check"
|
||||
}
|
||||
{ ToggleButton1 ToggleButton
|
||||
MoveScaled(42,0,19,4)
|
||||
Action = "test"
|
||||
}
|
||||
}
|
||||
{ HSplit1 HSplit
|
||||
MoveScaled(4,12,68,40)
|
||||
Expand = True
|
||||
@ -28,3 +43,16 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Gambas Action File 3.0
|
||||
|
||||
{ Actions
|
||||
{ Action check
|
||||
Text = ""
|
||||
Picture = "$CheckBox"
|
||||
}
|
||||
{ Action test
|
||||
Text = ""
|
||||
Picture = "$CheckBox"
|
||||
}
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
FTestCombo
|
||||
FMain
|
||||
gb.gui.base
|
||||
0
|
||||
0
|
||||
|
@ -30,6 +30,7 @@ GB_CONFIG_SUBDIRS(xml, gb.xml)
|
||||
GB_CONFIG_SUBDIRS(v4l, gb.v4l)
|
||||
GB_CONFIG_SUBDIRS(crypt, gb.crypt)
|
||||
GB_CONFIG_SUBDIRS(qt4, gb.qt4)
|
||||
GB_CONFIG_SUBDIRS(qt5, gb.qt5)
|
||||
GB_CONFIG_SUBDIRS(gtk, gb.gtk)
|
||||
GB_CONFIG_SUBDIRS(gtk3, gb.gtk3)
|
||||
GB_CONFIG_SUBDIRS(opengl, gb.opengl)
|
||||
|
@ -56,7 +56,7 @@ void MyCheckBox::adjust(bool force)
|
||||
a = _autoResize;
|
||||
_autoResize = false;
|
||||
hint = sizeHint();
|
||||
CWIDGET_resize(THIS, hint.width(), QMAX(hint.height(), height()));
|
||||
CWIDGET_resize(THIS, hint.width(), qMax(hint.height(), height()));
|
||||
_autoResize = a;
|
||||
}
|
||||
|
||||
|
@ -30,6 +30,7 @@
|
||||
#include <QImage>
|
||||
#include <QEvent>
|
||||
#include <QColor>
|
||||
#include <QDrag>
|
||||
#include <QDragMoveEvent>
|
||||
#include <QDropEvent>
|
||||
#include <QDragEnterEvent>
|
||||
@ -37,6 +38,7 @@
|
||||
#include <QLineEdit>
|
||||
#include <QTextEdit>
|
||||
#include <QSpinBox>
|
||||
#include <QWidget>
|
||||
|
||||
#include "CWidget.h"
|
||||
#include "CImage.h"
|
||||
|
@ -162,7 +162,7 @@ static QString my_getOpenFileName()
|
||||
{
|
||||
QFileDialog dialog(qApp->activeWindow(), dialog_title, dialog_path, get_filter());
|
||||
|
||||
dialog.setMode(QFileDialog::ExistingFile);
|
||||
dialog.setFileMode(QFileDialog::ExistingFile);
|
||||
dialog.setOption(QFileDialog::DontUseNativeDialog);
|
||||
dialog.setFilter(dialog_show_hidden ? (dialog.filter() | QDir::Hidden | QDir::System) : (dialog.filter() & ~(QDir::Hidden | QDir::System)));
|
||||
|
||||
@ -176,7 +176,7 @@ static QStringList my_getOpenFileNames()
|
||||
{
|
||||
QFileDialog dialog(qApp->activeWindow(), dialog_title, dialog_path, get_filter());
|
||||
|
||||
dialog.setMode(QFileDialog::ExistingFiles);
|
||||
dialog.setFileMode(QFileDialog::ExistingFiles);
|
||||
dialog.setOption(QFileDialog::DontUseNativeDialog);
|
||||
dialog.setFilter(dialog_show_hidden ? (dialog.filter() | QDir::Hidden | QDir::System) : (dialog.filter() & ~(QDir::Hidden | QDir::System)));
|
||||
|
||||
@ -205,7 +205,7 @@ static QString my_getSaveFileName()
|
||||
dialog.selectFile(file);
|
||||
|
||||
dialog.setAcceptMode(QFileDialog::AcceptSave);
|
||||
dialog.setMode(QFileDialog::AnyFile);
|
||||
dialog.setFileMode(QFileDialog::AnyFile);
|
||||
dialog.setOption(QFileDialog::DontUseNativeDialog);
|
||||
dialog.setFilter(dialog_show_hidden ? (dialog.filter() | QDir::Hidden | QDir::System) : (dialog.filter() & ~(QDir::Hidden | QDir::System)));
|
||||
|
||||
@ -219,7 +219,7 @@ static QString my_getExistingDirectory()
|
||||
{
|
||||
QFileDialog dialog(qApp->activeWindow(), dialog_title, dialog_path);
|
||||
|
||||
dialog.setMode(QFileDialog::Directory);
|
||||
dialog.setFileMode(QFileDialog::Directory);
|
||||
dialog.setOption(QFileDialog::DontUseNativeDialog);
|
||||
|
||||
if (dialog.exec() == QDialog::Accepted)
|
||||
|
@ -37,6 +37,7 @@
|
||||
#include "CColor.h"
|
||||
#include "CDrawingArea.h"
|
||||
|
||||
#ifndef QT5
|
||||
#ifndef NO_X_WINDOW
|
||||
#include <QX11Info>
|
||||
#include <X11/Xlib.h>
|
||||
@ -45,6 +46,7 @@
|
||||
#ifdef FontChange
|
||||
#undef FontChange
|
||||
#endif
|
||||
#endif
|
||||
|
||||
DECLARE_EVENT(EVENT_Draw);
|
||||
DECLARE_EVENT(EVENT_Font);
|
||||
@ -60,7 +62,9 @@ MyDrawingArea::MyDrawingArea(QWidget *parent) : MyContainer(parent)
|
||||
{
|
||||
drawn = 0;
|
||||
cache = 0;
|
||||
#ifndef QT5
|
||||
_background = (Qt::HANDLE)0;
|
||||
#endif
|
||||
_frozen = false;
|
||||
_event_mask = 0;
|
||||
_set_background = true;
|
||||
@ -86,6 +90,7 @@ MyDrawingArea::~MyDrawingArea()
|
||||
void MyDrawingArea::setVisible(bool visible)
|
||||
{
|
||||
MyContainer::setVisible(visible);
|
||||
#ifndef QT5
|
||||
if (_cached)
|
||||
{
|
||||
if (visible)
|
||||
@ -93,6 +98,7 @@ void MyDrawingArea::setVisible(bool visible)
|
||||
else
|
||||
parentWidget()->update();
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void MyDrawingArea::setAllowFocus(bool f)
|
||||
@ -114,7 +120,8 @@ void MyDrawingArea::setFrozen(bool f)
|
||||
if (f == _frozen)
|
||||
return;
|
||||
|
||||
#ifndef NO_X_WINDOW
|
||||
#ifndef QT5
|
||||
#ifndef NO_X_WINDOW
|
||||
XWindowAttributes attr;
|
||||
|
||||
if (f)
|
||||
@ -133,17 +140,15 @@ void MyDrawingArea::setFrozen(bool f)
|
||||
//qDebug("unfrozen");
|
||||
}
|
||||
XFlush(QX11Info::display());
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
_frozen = f;
|
||||
}
|
||||
|
||||
static void cleanup_drawing(intptr_t _object)
|
||||
{
|
||||
//if (WIDGET->isPaint())
|
||||
PAINT_end();
|
||||
//else
|
||||
// DRAW_end();
|
||||
PAINT_end();
|
||||
}
|
||||
|
||||
void MyDrawingArea::redraw(QRect &r, bool frame)
|
||||
@ -210,13 +215,18 @@ void MyDrawingArea::redraw(QRect &r, bool frame)
|
||||
void MyDrawingArea::createBackground(int w, int h)
|
||||
{
|
||||
void *_object = CWidget::get(this);
|
||||
QX11Info xinfo = x11Info();
|
||||
QPixmap p;
|
||||
#ifndef QT5
|
||||
QX11Info xinfo = x11Info();
|
||||
Qt::HANDLE old = _background;
|
||||
//GC gc;
|
||||
|
||||
#endif
|
||||
|
||||
#ifndef QT5
|
||||
_background = (Qt::HANDLE)XCreatePixmap(QX11Info::display(), RootWindow(QX11Info::display(), xinfo.screen()), w, h, xinfo.depth());
|
||||
_background_pixmap = QPixmap::fromX11Pixmap(_background, QPixmap::ExplicitlyShared);
|
||||
#else
|
||||
_background_pixmap = QPixmap(w, h);
|
||||
#endif
|
||||
_background_w = w;
|
||||
_background_h = h;
|
||||
|
||||
@ -235,33 +245,42 @@ void MyDrawingArea::createBackground(int w, int h)
|
||||
_background_pixmap.fill(CCOLOR_make(CWIDGET_get_real_background((CWIDGET *)THIS)));
|
||||
|
||||
//qDebug("XSetWindowBackgroundPixmap: %08X %08X", (int)winId(), (int)_background);
|
||||
#ifndef QT5
|
||||
XSetWindowBackgroundPixmap(QX11Info::display(), winId(), _background);
|
||||
XClearArea(QX11Info::display(), winId(), 0, 0, 0, 0, True);
|
||||
|
||||
_cached = true;
|
||||
|
||||
if (old)
|
||||
XFreePixmap(QX11Info::display(), (Pixmap)old);
|
||||
|
||||
XFlush(QX11Info::display());
|
||||
#else
|
||||
update();
|
||||
#endif
|
||||
|
||||
_cached = true;
|
||||
}
|
||||
|
||||
void MyDrawingArea::deleteBackground()
|
||||
{
|
||||
if (_cached && _background)
|
||||
if (hasCacheBackground())
|
||||
{
|
||||
#ifndef QT5
|
||||
//qDebug("XSetWindowBackgroundPixmap: %08X None", (int)winId());
|
||||
XSetWindowBackgroundPixmap(QX11Info::display(), winId(), None);
|
||||
XFreePixmap(QX11Info::display(), (Pixmap)_background);
|
||||
XFlush(QX11Info::display());
|
||||
_cached = false;
|
||||
_background = 0;
|
||||
#else
|
||||
_background_pixmap = QPixmap();
|
||||
#endif
|
||||
_cached = false;
|
||||
_background_w = _background_h = 0;
|
||||
}
|
||||
}
|
||||
|
||||
QPixmap *MyDrawingArea::getBackgroundPixmap()
|
||||
{
|
||||
if (!_cached || !_background)
|
||||
if (!hasCacheBackground())
|
||||
return NULL;
|
||||
else
|
||||
return &_background_pixmap;
|
||||
@ -271,7 +290,8 @@ void MyDrawingArea::paintEvent(QPaintEvent *event)
|
||||
{
|
||||
if (_cached)
|
||||
{
|
||||
#ifndef NO_X_WINDOW
|
||||
#ifndef QT5
|
||||
#ifndef NO_X_WINDOW
|
||||
if (_set_background)
|
||||
{
|
||||
//qDebug("XSetWindowBackgroundPixmap: %08X %08X (paint)", (int)winId(), (int)_background);
|
||||
@ -279,9 +299,14 @@ void MyDrawingArea::paintEvent(QPaintEvent *event)
|
||||
XFlush(QX11Info::display());
|
||||
_set_background = false;
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
QPainter p(this);
|
||||
|
||||
#ifdef QT5
|
||||
p.drawPixmap(0, 0, _background_pixmap);
|
||||
#endif
|
||||
|
||||
if (frameWidth())
|
||||
{
|
||||
@ -299,7 +324,7 @@ void MyDrawingArea::paintEvent(QPaintEvent *event)
|
||||
//QPainter paint( this );
|
||||
QRect r;
|
||||
|
||||
r = event->rect().intersect(contentsRect());
|
||||
r = event->rect().intersected(contentsRect());
|
||||
if (r.isValid())
|
||||
{
|
||||
/*if (!isTransparent())
|
||||
@ -322,33 +347,27 @@ void MyDrawingArea::paintEvent(QPaintEvent *event)
|
||||
|
||||
void MyDrawingArea::setBackground()
|
||||
{
|
||||
#ifndef QT5
|
||||
if (_cached)
|
||||
{
|
||||
#ifdef NO_X_WINDOW
|
||||
setErasePixmap(*_background);
|
||||
#else
|
||||
//if (isVisible())
|
||||
// XSetWindowBackgroundPixmap(QX11Info::display(), winId(), _background->handle());
|
||||
//else
|
||||
//_set_background = true;
|
||||
XSetWindowBackgroundPixmap(QX11Info::display(), winId(), _background);
|
||||
XFlush(QX11Info::display());
|
||||
refreshBackground();
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void MyDrawingArea::refreshBackground()
|
||||
{
|
||||
if (_cached)
|
||||
{
|
||||
#ifdef NO_X_WINDOW
|
||||
update();
|
||||
#else
|
||||
#ifndef QT5
|
||||
int fw = frameWidth();
|
||||
XClearArea(QX11Info::display(), winId(), fw, fw, width() - fw * 2, height() - fw * 2, False);
|
||||
XFlush(QX11Info::display());
|
||||
#endif
|
||||
#else
|
||||
update();
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@ -367,8 +386,12 @@ void MyDrawingArea::clearBackground()
|
||||
}
|
||||
else
|
||||
{
|
||||
#ifndef QT5
|
||||
XClearArea(QX11Info::display(), winId(), 0, 0, 0, 0, True);
|
||||
XFlush(QX11Info::display());
|
||||
#else
|
||||
update();
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@ -380,7 +403,10 @@ void MyDrawingArea::resizeEvent(QResizeEvent *e)
|
||||
|
||||
void MyDrawingArea::updateBackground()
|
||||
{
|
||||
int wb, hb, w, h;
|
||||
int w, h;
|
||||
#ifndef QT5
|
||||
int wb, hb;
|
||||
#endif
|
||||
|
||||
if (drawn)
|
||||
{
|
||||
@ -390,15 +416,16 @@ void MyDrawingArea::updateBackground()
|
||||
|
||||
if (_cached)
|
||||
{
|
||||
w = QMAX(width(), 1);
|
||||
h = QMAX(height(), 1);
|
||||
w = qMax(width(), 1);
|
||||
h = qMax(height(), 1);
|
||||
|
||||
if (w != _background_w || h != _background_h)
|
||||
{
|
||||
#ifndef QT5
|
||||
Qt::HANDLE old = _background;
|
||||
|
||||
wb = QMIN(w, _background_w);
|
||||
hb = QMIN(h, _background_h);
|
||||
wb = qMin(w, _background_w);
|
||||
hb = qMin(h, _background_h);
|
||||
|
||||
_background = 0;
|
||||
createBackground(w, h);
|
||||
@ -408,6 +435,13 @@ void MyDrawingArea::updateBackground()
|
||||
XFreeGC(QX11Info::display(), gc);
|
||||
|
||||
XFreePixmap(QX11Info::display(), old);
|
||||
#else
|
||||
QPixmap old = _background_pixmap;
|
||||
createBackground(w, h);
|
||||
QPainter p(&_background_pixmap);
|
||||
p.drawPixmap(0, 0, old);
|
||||
p.end();
|
||||
#endif
|
||||
|
||||
setBackground();
|
||||
}
|
||||
@ -444,7 +478,8 @@ void MyDrawingArea::updateCache()
|
||||
setBackgroundMode(Qt::NoBackground);
|
||||
#else
|
||||
//XClearArea(QX11Info::display(), winId(), 0, 0, 0, 0, True);
|
||||
repaint();
|
||||
//repaint();
|
||||
update();
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -465,7 +500,7 @@ void MyDrawingArea::setPalette(const QPalette &pal)
|
||||
if (_cached)
|
||||
return;
|
||||
MyContainer::setPalette(pal);
|
||||
repaint();
|
||||
update();
|
||||
}
|
||||
|
||||
void MyDrawingArea::updateNoBackground()
|
||||
|
@ -73,11 +73,11 @@ public:
|
||||
void updateCache();
|
||||
void setCached(bool);
|
||||
bool isCached() const { return _cached; }
|
||||
//QPixmap *getCache(void) { return cache; }
|
||||
//void refreshCache(void) { if (cache) setBackgroundPixmap(*cache); }
|
||||
|
||||
void clearBackground();
|
||||
#ifndef QT5
|
||||
Qt::HANDLE background() const { return _background; }
|
||||
#endif
|
||||
void refreshBackground();
|
||||
void updateBackground();
|
||||
|
||||
@ -97,6 +97,11 @@ public:
|
||||
bool inDrawEvent() const { return _in_draw_event; }
|
||||
|
||||
void createBackground(int w, int h);
|
||||
#ifndef QT5
|
||||
bool hasCacheBackground() const { return _cached && _background; }
|
||||
#else
|
||||
bool hasCacheBackground() const { return _cached && !_background_pixmap.isNull(); }
|
||||
#endif
|
||||
void deleteBackground();
|
||||
|
||||
QPixmap *getBackgroundPixmap();
|
||||
@ -121,7 +126,9 @@ protected:
|
||||
private:
|
||||
|
||||
QPixmap _background_pixmap;
|
||||
#ifndef QT5
|
||||
Qt::HANDLE _background;
|
||||
#endif
|
||||
int _background_w, _background_h;
|
||||
bool _frozen;
|
||||
bool _merge;
|
||||
|
@ -59,7 +59,7 @@ void MyRadioButton::adjust(bool force)
|
||||
a = _autoResize;
|
||||
_autoResize = false;
|
||||
hint = sizeHint();
|
||||
CWIDGET_resize(THIS, hint.width(), QMAX(hint.height(), height()));
|
||||
CWIDGET_resize(THIS, hint.width(), qMax(hint.height(), height()));
|
||||
_autoResize = a;
|
||||
}
|
||||
|
||||
|
@ -244,6 +244,12 @@ END_PROPERTY
|
||||
|
||||
BEGIN_PROPERTY(Application_Embedder)
|
||||
|
||||
#ifdef QT5
|
||||
if (READ_PROPERTY)
|
||||
GB.ReturnInteger(0);
|
||||
else
|
||||
GB.Deprecated("gb.qt5", "Application.Embedder", NULL);
|
||||
#else
|
||||
if (READ_PROPERTY)
|
||||
GB.ReturnInteger(CWINDOW_Embedder);
|
||||
else
|
||||
@ -257,8 +263,9 @@ BEGIN_PROPERTY(Application_Embedder)
|
||||
CWINDOW_Embedder = VPROP(GB_INTEGER);
|
||||
}
|
||||
|
||||
END_PROPERTY
|
||||
#endif
|
||||
|
||||
END_PROPERTY
|
||||
|
||||
BEGIN_PROPERTY(Application_Theme)
|
||||
|
||||
|
@ -126,7 +126,7 @@ void MyContents::autoResize(void)
|
||||
#endif
|
||||
|
||||
if (sw->getScrollbar())
|
||||
sbsize = qApp->style()->pixelMetric(QStyle::PM_ScrollBarExtent) + QMAX(0, qApp->style()->pixelMetric(QStyle::PM_ScrollView_ScrollBarSpacing));
|
||||
sbsize = qApp->style()->pixelMetric(QStyle::PM_ScrollBarExtent) + qMax(0, qApp->style()->pixelMetric(QStyle::PM_ScrollView_ScrollBarSpacing));
|
||||
else
|
||||
sbsize = 0;
|
||||
|
||||
|
@ -275,7 +275,7 @@ END_PROPERTY
|
||||
|
||||
BEGIN_PROPERTY(Style_ScrollbarSpacing)
|
||||
|
||||
GB.ReturnInteger(QMAX(0, qApp->style()->pixelMetric(QStyle::PM_ScrollView_ScrollBarSpacing)));
|
||||
GB.ReturnInteger(qMax(0, qApp->style()->pixelMetric(QStyle::PM_ScrollView_ScrollBarSpacing)));
|
||||
|
||||
END_PROPERTY
|
||||
|
||||
@ -305,6 +305,11 @@ BEGIN_PROPERTY(Style_Name)
|
||||
len -= 5;
|
||||
if (len >= 3 && strncmp(&name[len - 2], "::", 2) == 0)
|
||||
len -= 2;
|
||||
if (name[0] == 'Q' && isupper(name[1]))
|
||||
{
|
||||
len--;
|
||||
name++;
|
||||
}
|
||||
|
||||
GB.ReturnNewString(name, len);
|
||||
|
||||
|
@ -340,7 +340,7 @@ static void raise_click_event(void *_object)
|
||||
static int combo_get_current_item(void *_object)
|
||||
{
|
||||
COMBOBOX->sort();
|
||||
return COMBOBOX->count() == 0 ? -1 : COMBOBOX->currentItem();
|
||||
return COMBOBOX->count() == 0 ? -1 : COMBOBOX->currentIndex();
|
||||
}
|
||||
|
||||
static void combo_set_current_item(void *_object, int item)
|
||||
@ -350,7 +350,7 @@ static void combo_set_current_item(void *_object, int item)
|
||||
if (item != combo_get_current_item(THIS))
|
||||
{
|
||||
if (item < COMBOBOX->count())
|
||||
COMBOBOX->setCurrentItem(item);
|
||||
COMBOBOX->setCurrentIndex(item);
|
||||
}
|
||||
|
||||
if (item >= 0 && !COMBOBOX->signalsBlocked())
|
||||
@ -362,7 +362,7 @@ static int combo_find_item(void *_object, const QString& s)
|
||||
COMBOBOX->sort();
|
||||
for (int i = 0; i < (int)COMBOBOX->count(); i++)
|
||||
{
|
||||
if (COMBOBOX->text(i) == s)
|
||||
if (COMBOBOX->itemText(i) == s)
|
||||
return i;
|
||||
}
|
||||
|
||||
@ -435,7 +435,7 @@ static void combo_get_list(void *_object, GB_ARRAY array)
|
||||
COMBOBOX->sort();
|
||||
for (i = 0; i < COMBOBOX->count(); i++)
|
||||
{
|
||||
*((char **)GB.Array.Get(array, i)) = NEW_STRING(COMBOBOX->text(i));
|
||||
*((char **)GB.Array.Get(array, i)) = NEW_STRING(COMBOBOX->itemText(i));
|
||||
}
|
||||
}
|
||||
|
||||
@ -452,7 +452,7 @@ static void combo_set_list(void *_object, GB_ARRAY array)
|
||||
{
|
||||
for (i = 0; i < GB.Array.Count(array); i++)
|
||||
{
|
||||
COMBOBOX->insertItem(TO_QSTRING(*((char **)GB.Array.Get(array, i))));
|
||||
COMBOBOX->insertItem(i, TO_QSTRING(*((char **)GB.Array.Get(array, i))));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -51,9 +51,11 @@
|
||||
#include "main.h"
|
||||
|
||||
#ifndef NO_X_WINDOW
|
||||
#ifndef QT5
|
||||
#include <QX11EmbedWidget>
|
||||
#include <QX11EmbedContainer>
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#include "gambas.h"
|
||||
|
||||
@ -107,9 +109,11 @@ CWINDOW *CWINDOW_Current = 0;
|
||||
CWINDOW *CWINDOW_LastActive = 0;
|
||||
CWINDOW *CWINDOW_Active = 0;
|
||||
|
||||
#ifndef QT5
|
||||
int CWINDOW_Embedder = 0;
|
||||
bool CWINDOW_Embedded = false;
|
||||
static int CWINDOW_EmbedState = 0;
|
||||
#endif
|
||||
|
||||
#ifndef NO_X_WINDOW
|
||||
void CWINDOW_change_property(QWidget *w, Atom property, bool set)
|
||||
@ -338,16 +342,19 @@ BEGIN_METHOD(Window_new, GB_OBJECT parent)
|
||||
|
||||
MyMainWindow *win = 0;
|
||||
MyContainer *container;
|
||||
#ifndef NO_X_WINDOW
|
||||
#ifndef NO_X_WINDOW
|
||||
#ifndef QT5
|
||||
QX11EmbedWidget *client = 0;
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
const char *name = GB.GetClassName(THIS);
|
||||
|
||||
//THIS->widget.flag.fillBackground = true;
|
||||
|
||||
if (MISSING(parent) || !VARG(parent))
|
||||
{
|
||||
#ifndef NO_X_WINDOW
|
||||
#ifndef NO_X_WINDOW
|
||||
#ifndef QT5
|
||||
if (CWINDOW_Embedder && !CWINDOW_Embedded)
|
||||
{
|
||||
client = new QX11EmbedWidget;
|
||||
@ -360,7 +367,8 @@ BEGIN_METHOD(Window_new, GB_OBJECT parent)
|
||||
THIS->xembed = true;
|
||||
}
|
||||
else
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
{
|
||||
//win = new MyMainWindow(CWINDOW_Main ? (MyMainWindow *)QWIDGET(CWINDOW_Main) : 0, name);
|
||||
win = new MyMainWindow(0, name);
|
||||
@ -420,7 +428,8 @@ BEGIN_METHOD(Window_new, GB_OBJECT parent)
|
||||
}*/
|
||||
}
|
||||
|
||||
#ifndef NO_X_WINDOW
|
||||
#ifndef NO_X_WINDOW
|
||||
#ifndef QT5
|
||||
if (THIS->xembed)
|
||||
{
|
||||
CWINDOW_Embedded = true;
|
||||
@ -452,7 +461,8 @@ BEGIN_METHOD(Window_new, GB_OBJECT parent)
|
||||
GB.Error("Embedding has failed");
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if 1
|
||||
if (THIS->embedded && !THIS->xembed)
|
||||
@ -674,10 +684,12 @@ BEGIN_METHOD_VOID(Window_Show)
|
||||
{
|
||||
CWIDGET_set_visible((CWIDGET *)THIS, true);
|
||||
CWIDGET_check_visibility((CWIDGET *)THIS);
|
||||
#ifndef NO_X_WINDOW
|
||||
if (THIS->xembed)
|
||||
XEMBED->show();
|
||||
#endif
|
||||
#ifndef NO_X_WINDOW
|
||||
#ifndef QT5
|
||||
if (THIS->xembed)
|
||||
XEMBED->show();
|
||||
#endif
|
||||
#endif
|
||||
post_show_event(THIS);
|
||||
}
|
||||
else
|
||||
@ -2117,10 +2129,12 @@ void MyMainWindow::resizeEvent(QResizeEvent *e)
|
||||
CCONTAINER_arrange(THIS);
|
||||
}
|
||||
|
||||
#ifndef NO_X_WINDOW
|
||||
if (THIS->xembed)
|
||||
XEMBED->resize(THIS->w, THIS->h);
|
||||
#endif
|
||||
#ifndef NO_X_WINDOW
|
||||
#ifndef QT5
|
||||
if (THIS->xembed)
|
||||
XEMBED->resize(THIS->w, THIS->h);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
//qDebug("resizeEvent %ld %ld isHidden:%s shown:%s ", THIS->w, THIS->h, isHidden() ? "1" : "0", shown ? "1" : "0");
|
||||
//qDebug("THIS->h = %ld THIS->container->height() = %ld height() = %ld", THIS->h, THIS->container->height(), height());
|
||||
@ -2738,7 +2752,19 @@ bool CWindow::eventFilter(QObject *o, QEvent *e)
|
||||
return QObject::eventFilter(o, e); // standard event processing
|
||||
}
|
||||
|
||||
#ifdef QT5
|
||||
void CWindow::error(void)
|
||||
{
|
||||
}
|
||||
|
||||
void CWindow::embedded(void)
|
||||
{
|
||||
}
|
||||
|
||||
void CWindow::closed(void)
|
||||
{
|
||||
}
|
||||
#else
|
||||
void CWindow::error(void)
|
||||
{
|
||||
//CWINDOW *_object = (CWINDOW *)CWidget::getReal((QObject *)sender());
|
||||
@ -2760,6 +2786,7 @@ void CWindow::closed(void)
|
||||
//CWIDGET_destroy(CWidget::getReal((QObject *)sender()));
|
||||
delete sender();
|
||||
}
|
||||
#endif
|
||||
|
||||
void CWindow::destroy(void)
|
||||
{
|
||||
@ -2772,9 +2799,11 @@ void CWindow::destroy(void)
|
||||
CWindow::removeTopLevel(THIS);
|
||||
}
|
||||
|
||||
#ifndef QT5
|
||||
CWINDOW_EmbedState = EMBED_WAIT;
|
||||
CWINDOW_Embedded = false;
|
||||
CWINDOW_Embedder = 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
void CWindow::insertTopLevel(CWINDOW *_object)
|
||||
|
@ -111,15 +111,20 @@ extern int CWINDOW_MainDesktop;
|
||||
extern CWINDOW *CWINDOW_Current;
|
||||
extern CWINDOW *CWINDOW_Active;
|
||||
extern CWINDOW *CWINDOW_LastActive;
|
||||
#ifndef QT5
|
||||
extern int CWINDOW_Embedder;
|
||||
extern bool CWINDOW_Embedded;
|
||||
#endif
|
||||
|
||||
#else
|
||||
|
||||
#define THIS ((CWINDOW *)_object)
|
||||
#define WIDGET ((QWidget *)(((CWIDGET *)_object)->widget))
|
||||
#define WINDOW ((MyMainWindow *)WIDGET)
|
||||
|
||||
#ifndef QT5
|
||||
#define XEMBED ((QX11EmbedWidget *)(WIDGET->parent()))
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
|
@ -113,8 +113,10 @@ static bool init_painting(GB_PAINT *d, QPaintDevice *device)
|
||||
EXTRA(d)->painter = new QPainter(device);
|
||||
}
|
||||
|
||||
#ifndef QT5
|
||||
MyPaintEngine *engine = (MyPaintEngine *)device->paintEngine();
|
||||
engine->patchFeatures();
|
||||
#endif
|
||||
|
||||
//EXTRA(d)->path = NULL;
|
||||
//EXTRA(d)->clip = NULL;
|
||||
|
@ -218,7 +218,7 @@ END_PROPERTY
|
||||
BEGIN_PROPERTY(Printer_Name)
|
||||
|
||||
if (READ_PROPERTY)
|
||||
GB.ReturnNewZeroString(PRINTER->printerName());
|
||||
RETURN_NEW_STRING(PRINTER->printerName());
|
||||
else
|
||||
PRINTER->setPrinterName(QSTRING_PROP());
|
||||
|
||||
@ -425,7 +425,7 @@ END_PROPERTY
|
||||
BEGIN_PROPERTY(Printer_OutputFile)
|
||||
|
||||
if (READ_PROPERTY)
|
||||
GB.ReturnNewZeroString(PRINTER->outputFileName());
|
||||
RETURN_NEW_STRING(PRINTER->outputFileName());
|
||||
else
|
||||
PRINTER->setOutputFileName(TO_QSTRING(GB.FileName(PSTRING(), PLENGTH())));
|
||||
|
||||
@ -438,7 +438,7 @@ BEGIN_PROPERTY(Printer_Default)
|
||||
if (info.isNull())
|
||||
GB.ReturnNull();
|
||||
else
|
||||
GB.ReturnNewZeroString(info.printerName());
|
||||
RETURN_NEW_STRING(info.printerName());
|
||||
|
||||
END_PROPERTY
|
||||
|
||||
@ -449,7 +449,7 @@ BEGIN_PROPERTY(Printer_List)
|
||||
|
||||
GB.Array.New(&array, GB_T_STRING, list.length());
|
||||
for (int i = 0; i < list.length(); i++)
|
||||
*((char **)GB.Array.Get(array, i)) = GB.NewZeroString(list.at(i).printerName());
|
||||
*((char **)GB.Array.Get(array, i)) = NEW_STRING(list.at(i).printerName());
|
||||
|
||||
GB.ReturnObject(array);
|
||||
|
||||
|
@ -46,6 +46,10 @@
|
||||
|
||||
#define QT_INTERFACE_VERSION 1
|
||||
|
||||
#if QT_VERSION >= 0x050000
|
||||
#define QT5 1
|
||||
#endif
|
||||
|
||||
#define TO_QSTRING(_str) (QString::fromUtf8((const char *)(_str)))
|
||||
|
||||
#ifdef DO_NOT_USE_QT_INTERFACE
|
||||
|
@ -97,8 +97,10 @@
|
||||
|
||||
#ifndef NO_X_WINDOW
|
||||
#include <QX11Info>
|
||||
#ifndef QT5
|
||||
#include "CEmbedder.h"
|
||||
#include "CTrayIcon.h"
|
||||
#endif
|
||||
#include "x11.h"
|
||||
#endif
|
||||
|
||||
@ -553,6 +555,7 @@ static void x11_set_event_filter(void (*filter)(XEvent *))
|
||||
_x11_event_filter = filter;
|
||||
}
|
||||
|
||||
#ifndef QT5
|
||||
bool MyApplication::x11EventFilter(XEvent *e)
|
||||
{
|
||||
// Workaround for input methods that void the key code of KeyRelease eventFilter
|
||||
@ -568,6 +571,8 @@ bool MyApplication::x11EventFilter(XEvent *e)
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
/** MyTimer ****************************************************************/
|
||||
|
||||
MyTimer::MyTimer(GB_TIMER *t) : QObject(0)
|
||||
@ -637,7 +642,11 @@ static bool must_quit(void)
|
||||
#if DEBUG_WINDOW
|
||||
qDebug("must_quit: Window = %d Watch = %d in_event_loop = %d", CWindow::count, CWatch::count, in_event_loop);
|
||||
#endif
|
||||
#ifdef QT5
|
||||
return CWINDOW_must_quit() && CWatch::count == 0 && in_event_loop && MAIN_in_message_box == 0;
|
||||
#else
|
||||
return CWINDOW_must_quit() && CWatch::count == 0 && in_event_loop && MAIN_in_message_box == 0 && TRAYICON_count == 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static void check_quit_now(intptr_t param)
|
||||
@ -648,10 +657,12 @@ static void check_quit_now(intptr_t param)
|
||||
{
|
||||
if (QApplication::instance())
|
||||
{
|
||||
#ifndef NO_X_WINDOW
|
||||
#ifndef NO_X_WINDOW
|
||||
#ifndef QT5
|
||||
CTRAYICON_close_all();
|
||||
qApp->syncX();
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
qApp->exit();
|
||||
exit_called = true;
|
||||
}
|
||||
@ -1053,9 +1064,12 @@ GB_DESC *GB_CLASSES[] EXPORT =
|
||||
CSliderDesc, CSpinBoxDesc, CMovieBoxDesc, CScrollBarDesc,
|
||||
CWindowMenusDesc, CWindowControlsDesc, CWindowDesc, CWindowsDesc, CFormDesc,
|
||||
CDialogDesc,
|
||||
#ifndef NO_X_WINDOW
|
||||
CEmbedderDesc, CTrayIconDesc, CTrayIconsDesc,
|
||||
#endif
|
||||
#ifndef NO_X_WINDOW
|
||||
#ifndef QT5
|
||||
CEmbedderDesc,
|
||||
CTrayIconDesc, CTrayIconsDesc,
|
||||
#endif
|
||||
#endif
|
||||
CWatcherDesc,
|
||||
PrinterDesc,
|
||||
SvgImageDesc,
|
||||
@ -1256,7 +1270,9 @@ void EXPORT GB_SIGNAL(int signal, void *param)
|
||||
case GB_SIGNAL_DEBUG_FORWARD:
|
||||
//while (qApp->activePopupWidget())
|
||||
// delete qApp->activePopupWidget();
|
||||
#ifndef QT5
|
||||
qApp->syncX();
|
||||
#endif
|
||||
break;
|
||||
|
||||
case GB_SIGNAL_DEBUG_CONTINUE:
|
||||
|
@ -1,29 +1,30 @@
|
||||
/***************************************************************************
|
||||
|
||||
main.h
|
||||
main.h
|
||||
|
||||
(c) 2000-2013 Benoît Minisini <gambas@users.sourceforge.net>
|
||||
(c) 2000-2013 Benoît Minisini <gambas@users.sourceforge.net>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
MA 02110-1301, USA.
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
MA 02110-1301, USA.
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
#ifndef __MAIN_H
|
||||
#define __MAIN_H
|
||||
|
||||
#include "gb_common.h"
|
||||
#include "gambas.h"
|
||||
|
||||
#include <QEvent>
|
||||
@ -72,62 +73,61 @@ extern GB_CLASS CLASS_TextArea;
|
||||
|
||||
class MyPostCheck: public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
|
||||
static bool in_check;
|
||||
static bool in_check;
|
||||
|
||||
public slots:
|
||||
|
||||
void check(void);
|
||||
void check(void);
|
||||
};
|
||||
|
||||
class MyApplication: public QApplication
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
|
||||
MyApplication(int &argc, char **argv);
|
||||
#ifndef NO_X_WINDOW
|
||||
virtual bool x11EventFilter(XEvent *e);
|
||||
#endif
|
||||
virtual bool eventFilter(QObject *o, QEvent *e);
|
||||
//virtual bool notify(QObject *o, QEvent *e);
|
||||
|
||||
static void setEventFilter(bool set);
|
||||
|
||||
static bool isTooltipEnabled() { return !_tooltip_disable; }
|
||||
static void setTooltipEnabled(bool b);
|
||||
|
||||
MyApplication(int &argc, char **argv);
|
||||
#ifndef QT5
|
||||
virtual bool x11EventFilter(XEvent *e);
|
||||
#endif
|
||||
virtual bool eventFilter(QObject *o, QEvent *e);
|
||||
//virtual bool notify(QObject *o, QEvent *e);
|
||||
|
||||
static void setEventFilter(bool set);
|
||||
|
||||
static bool isTooltipEnabled() { return !_tooltip_disable; }
|
||||
static void setTooltipEnabled(bool b);
|
||||
|
||||
static void initClipboard();
|
||||
|
||||
static QEventLoop *eventLoop;
|
||||
|
||||
|
||||
static QEventLoop *eventLoop;
|
||||
|
||||
public slots:
|
||||
|
||||
|
||||
void linkDestroyed(QObject *);
|
||||
void clipboardHasChanged();
|
||||
void commitDataRequested(QSessionManager &);
|
||||
|
||||
|
||||
private:
|
||||
static bool _tooltip_disable;
|
||||
static int _event_filter;
|
||||
static bool _tooltip_disable;
|
||||
static int _event_filter;
|
||||
};
|
||||
|
||||
class MyTimer : public QObject
|
||||
{
|
||||
public:
|
||||
|
||||
MyTimer(GB_TIMER *timer);
|
||||
~MyTimer();
|
||||
MyTimer(GB_TIMER *timer);
|
||||
~MyTimer();
|
||||
void clearTimer() { timer = 0; }
|
||||
|
||||
protected:
|
||||
|
||||
void timerEvent(QTimerEvent *);
|
||||
void timerEvent(QTimerEvent *);
|
||||
|
||||
private:
|
||||
|
||||
|
@ -80,7 +80,7 @@
|
||||
// We mean it.
|
||||
//
|
||||
|
||||
#include "systemtrayicon.h"
|
||||
//#include "systemtrayicon.h"
|
||||
//#include "private/qobject_p.h"
|
||||
|
||||
#include <QPixmap>
|
||||
|
0
gb.qt5/AUTHORS
Normal file
1
gb.qt5/COPYING
Symbolic link
@ -0,0 +1 @@
|
||||
../COPYING
|
0
gb.qt5/ChangeLog
Normal file
1
gb.qt5/INSTALL
Symbolic link
@ -0,0 +1 @@
|
||||
../INSTALL
|
3
gb.qt5/Makefile.am
Normal file
@ -0,0 +1,3 @@
|
||||
ACLOCAL_AMFLAGS = -I m4 --install
|
||||
SUBDIRS = @QT5_DIR@
|
||||
EXTRA_DIST = reconf share gb*.h gambas.h
|
0
gb.qt5/NEWS
Normal file
0
gb.qt5/README
Normal file
1
gb.qt5/acinclude.m4
Symbolic link
@ -0,0 +1 @@
|
||||
../acinclude.m4
|
1
gb.qt5/component.am
Symbolic link
@ -0,0 +1 @@
|
||||
../component.am
|
45
gb.qt5/configure.ac
Normal file
@ -0,0 +1,45 @@
|
||||
dnl ---- configure.ac for gb.qt5
|
||||
|
||||
m4_include([../version.m4])
|
||||
AC_INIT(gambas3-gb-qt5, GB_VERSION, GB_MAIL, [], GB_URL)
|
||||
AC_CONFIG_MACRO_DIR([m4])
|
||||
|
||||
GB_INIT(gb.qt5)
|
||||
AC_PROG_LIBTOOL
|
||||
|
||||
GB_CHECK_XWINDOW
|
||||
AM_CONDITIONAL(XWINDOW, test x"$have_x" = xyes)
|
||||
|
||||
GB_COMPONENT_PKG_CONFIG(
|
||||
qt5, QT5, gb.qt5, [src],
|
||||
'Qt5Core >= 5.3.0' Qt5Gui Qt5Widgets Qt5Svg Qt5PrintSupport Qt5X11Extras
|
||||
)
|
||||
|
||||
## GB_COMPONENT_PKG_CONFIG(
|
||||
## qt5ext, QT5EXT, gb.qt5.ext, [ext],
|
||||
## 'Qt5Core >= 5.3.0' Qt5Gui Qt5Widgets
|
||||
## )
|
||||
|
||||
## GB_COMPONENT_PKG_CONFIG(
|
||||
## qt5webkit, QT5WEBKIT, gb.qt5.webkit, [webkit],
|
||||
## 'Qt5Core >= 5.3.0' Qt5Gui Qt5Widgets Qt5Network Qt5Xml Qt5WebKit Qt5WebKitWidgets Qt5PrintSupport
|
||||
## )
|
||||
|
||||
## GB_COMPONENT_PKG_CONFIG(
|
||||
## qtopengl, QTOPENGL, gb.qt5.opengl, [opengl],
|
||||
## 'Qt5Core >= 5.3.0' Qt5Gui Qt5Widgets Qt5OpenGL
|
||||
## )
|
||||
|
||||
MOC=`pkg-config --variable=host_bins Qt5Core`/moc
|
||||
AC_SUBST(MOC)
|
||||
|
||||
AC_OUTPUT( \
|
||||
Makefile \
|
||||
src/Makefile \
|
||||
)
|
||||
|
||||
## src/ext/Makefile \
|
||||
## src/webkit/Makefile \
|
||||
## src/opengl/Makefile \
|
||||
|
||||
GB_PRINT_MESSAGES
|
1
gb.qt5/depcomp
Symbolic link
@ -0,0 +1 @@
|
||||
../depcomp
|
1
gb.qt5/gambas.h
Symbolic link
@ -0,0 +1 @@
|
||||
../main/share/gambas.h
|
1
gb.qt5/gb.draw.h
Symbolic link
@ -0,0 +1 @@
|
||||
../main/lib/draw/gb.draw.h
|
1
gb.qt5/gb.eval.h
Symbolic link
@ -0,0 +1 @@
|
||||
../main/lib/eval/gb.eval.h
|
1
gb.qt5/gb.geom.h
Symbolic link
@ -0,0 +1 @@
|
||||
../main/lib/geom/gb.geom.h
|
1
gb.qt5/gb.gl.h
Symbolic link
@ -0,0 +1 @@
|
||||
../gb.opengl/src/gb.gl.h
|
1
gb.qt5/gb.image.h
Symbolic link
@ -0,0 +1 @@
|
||||
../main/lib/image/gb.image.h
|
1
gb.qt5/gb.paint.h
Symbolic link
@ -0,0 +1 @@
|
||||
../main/lib/draw/gb.paint.h
|
6
gb.qt5/gb.qt.am
Normal file
@ -0,0 +1,6 @@
|
||||
CLEANFILES = *_moc.cpp
|
||||
|
||||
.h_moc.cpp:
|
||||
$(MOC) -o $@ $<
|
||||
|
||||
SUFFIXES = .h _moc.cpp
|
1
gb.qt5/gb_common.h
Symbolic link
@ -0,0 +1 @@
|
||||
../main/share/gb_common.h
|
1
gb.qt5/missing
Symbolic link
@ -0,0 +1 @@
|
||||
../missing
|
1
gb.qt5/reconf
Symbolic link
@ -0,0 +1 @@
|
||||
../reconf
|
1
gb.qt5/share
Symbolic link
@ -0,0 +1 @@
|
||||
../gb.qt4/share
|
1
gb.qt5/src/CButton.cpp
Symbolic link
@ -0,0 +1 @@
|
||||
../../gb.qt4/src/CButton.cpp
|
1
gb.qt5/src/CButton.h
Symbolic link
@ -0,0 +1 @@
|
||||
../../gb.qt4/src/CButton.h
|
1
gb.qt5/src/CCheckBox.cpp
Symbolic link
@ -0,0 +1 @@
|
||||
../../gb.qt4/src/CCheckBox.cpp
|
1
gb.qt5/src/CCheckBox.h
Symbolic link
@ -0,0 +1 @@
|
||||
../../gb.qt4/src/CCheckBox.h
|
1
gb.qt5/src/CClipboard.cpp
Symbolic link
@ -0,0 +1 @@
|
||||
../../gb.qt4/src/CClipboard.cpp
|
1
gb.qt5/src/CClipboard.h
Symbolic link
@ -0,0 +1 @@
|
||||
../../gb.qt4/src/CClipboard.h
|
1
gb.qt5/src/CColor.cpp
Symbolic link
@ -0,0 +1 @@
|
||||
../../gb.qt4/src/CColor.cpp
|
1
gb.qt5/src/CColor.h
Symbolic link
@ -0,0 +1 @@
|
||||
../../gb.qt4/src/CColor.h
|
1
gb.qt5/src/CConst.cpp
Symbolic link
@ -0,0 +1 @@
|
||||
../../gb.qt4/src/CConst.cpp
|
1
gb.qt5/src/CConst.h
Symbolic link
@ -0,0 +1 @@
|
||||
../../gb.qt4/src/CConst.h
|
1
gb.qt5/src/CContainer.cpp
Symbolic link
@ -0,0 +1 @@
|
||||
../../gb.qt4/src/CContainer.cpp
|
1
gb.qt5/src/CContainer.h
Symbolic link
@ -0,0 +1 @@
|
||||
../../gb.qt4/src/CContainer.h
|
1
gb.qt5/src/CDialog.cpp
Symbolic link
@ -0,0 +1 @@
|
||||
../../gb.qt4/src/CDialog.cpp
|
1
gb.qt5/src/CDialog.h
Symbolic link
@ -0,0 +1 @@
|
||||
../../gb.qt4/src/CDialog.h
|
1
gb.qt5/src/CDraw.cpp
Symbolic link
@ -0,0 +1 @@
|
||||
../../gb.qt4/src/CDraw.cpp
|
1
gb.qt5/src/CDraw.h
Symbolic link
@ -0,0 +1 @@
|
||||
../../gb.qt4/src/CDraw.h
|
1
gb.qt5/src/CDrawingArea.cpp
Symbolic link
@ -0,0 +1 @@
|
||||
../../gb.qt4/src/CDrawingArea.cpp
|
1
gb.qt5/src/CDrawingArea.h
Symbolic link
@ -0,0 +1 @@
|
||||
../../gb.qt4/src/CDrawingArea.h
|
1
gb.qt5/src/CEmbedder.cpp
Symbolic link
@ -0,0 +1 @@
|
||||
../../gb.qt4/src/CEmbedder.cpp
|
1
gb.qt5/src/CEmbedder.h
Symbolic link
@ -0,0 +1 @@
|
||||
../../gb.qt4/src/CEmbedder.h
|
1
gb.qt5/src/CFont.cpp
Symbolic link
@ -0,0 +1 @@
|
||||
../../gb.qt4/src/CFont.cpp
|
1
gb.qt5/src/CFont.h
Symbolic link
@ -0,0 +1 @@
|
||||
../../gb.qt4/src/CFont.h
|
1
gb.qt5/src/CFrame.cpp
Symbolic link
@ -0,0 +1 @@
|
||||
../../gb.qt4/src/CFrame.cpp
|
1
gb.qt5/src/CFrame.h
Symbolic link
@ -0,0 +1 @@
|
||||
../../gb.qt4/src/CFrame.h
|
1
gb.qt5/src/CImage.cpp
Symbolic link
@ -0,0 +1 @@
|
||||
../../gb.qt4/src/CImage.cpp
|
1
gb.qt5/src/CImage.h
Symbolic link
@ -0,0 +1 @@
|
||||
../../gb.qt4/src/CImage.h
|
1
gb.qt5/src/CKey.cpp
Symbolic link
@ -0,0 +1 @@
|
||||
../../gb.qt4/src/CKey.cpp
|
1
gb.qt5/src/CKey.h
Symbolic link
@ -0,0 +1 @@
|
||||
../../gb.qt4/src/CKey.h
|
1
gb.qt5/src/CLabel.cpp
Symbolic link
@ -0,0 +1 @@
|
||||
../../gb.qt4/src/CLabel.cpp
|
1
gb.qt5/src/CLabel.h
Symbolic link
@ -0,0 +1 @@
|
||||
../../gb.qt4/src/CLabel.h
|
1
gb.qt5/src/CMenu.cpp
Symbolic link
@ -0,0 +1 @@
|
||||
../../gb.qt4/src/CMenu.cpp
|
1
gb.qt5/src/CMenu.h
Symbolic link
@ -0,0 +1 @@
|
||||
../../gb.qt4/src/CMenu.h
|
1
gb.qt5/src/CMessage.cpp
Symbolic link
@ -0,0 +1 @@
|
||||
../../gb.qt4/src/CMessage.cpp
|
1
gb.qt5/src/CMessage.h
Symbolic link
@ -0,0 +1 @@
|
||||
../../gb.qt4/src/CMessage.h
|
1
gb.qt5/src/CMouse.cpp
Symbolic link
@ -0,0 +1 @@
|
||||
../../gb.qt4/src/CMouse.cpp
|
1
gb.qt5/src/CMouse.h
Symbolic link
@ -0,0 +1 @@
|
||||
../../gb.qt4/src/CMouse.h
|
1
gb.qt5/src/CMovieBox.cpp
Symbolic link
@ -0,0 +1 @@
|
||||
../../gb.qt4/src/CMovieBox.cpp
|
1
gb.qt5/src/CMovieBox.h
Symbolic link
@ -0,0 +1 @@
|
||||
../../gb.qt4/src/CMovieBox.h
|
1
gb.qt5/src/CPanel.cpp
Symbolic link
@ -0,0 +1 @@
|
||||
../../gb.qt4/src/CPanel.cpp
|
1
gb.qt5/src/CPanel.h
Symbolic link
@ -0,0 +1 @@
|
||||
../../gb.qt4/src/CPanel.h
|