git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@36875
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
32 files changed:
{
#define ART(wxid, gtkid) \
if (id == wxid) return gtkid;
{
#define ART(wxid, gtkid) \
if (id == wxid) return gtkid;
ART(wxART_ERROR, GTK_STOCK_DIALOG_ERROR)
ART(wxART_INFORMATION, GTK_STOCK_DIALOG_INFO)
ART(wxART_WARNING, GTK_STOCK_DIALOG_WARNING)
ART(wxART_QUESTION, GTK_STOCK_DIALOG_QUESTION)
ART(wxART_ERROR, GTK_STOCK_DIALOG_ERROR)
ART(wxART_INFORMATION, GTK_STOCK_DIALOG_INFO)
ART(wxART_WARNING, GTK_STOCK_DIALOG_WARNING)
ART(wxART_QUESTION, GTK_STOCK_DIALOG_QUESTION)
//ART(wxART_HELP_SIDE_PANEL, )
ART(wxART_HELP_SETTINGS, GTK_STOCK_SELECT_FONT)
//ART(wxART_HELP_BOOK, )
//ART(wxART_HELP_SIDE_PANEL, )
ART(wxART_HELP_SETTINGS, GTK_STOCK_SELECT_FONT)
//ART(wxART_HELP_BOOK, )
ART(wxART_FIND, GTK_STOCK_FIND)
ART(wxART_FIND_AND_REPLACE, GTK_STOCK_FIND_AND_REPLACE)
#endif
ART(wxART_FIND, GTK_STOCK_FIND)
ART(wxART_FIND_AND_REPLACE, GTK_STOCK_FIND_AND_REPLACE)
#endif
// only use larger bitmaps, scaling down looks better than scaling up:
if (size.x > s_sizes[i].x || size.y > s_sizes[i].y)
continue;
// only use larger bitmaps, scaling down looks better than scaling up:
if (size.x > s_sizes[i].x || size.y > s_sizes[i].y)
continue;
unsigned dist = (size.x - s_sizes[i].x) * (size.x - s_sizes[i].x) +
(size.y - s_sizes[i].y) * (size.y - s_sizes[i].y);
if (dist == 0)
unsigned dist = (size.x - s_sizes[i].x) * (size.x - s_sizes[i].x) +
(size.y - s_sizes[i].y) * (size.y - s_sizes[i].y);
if (dist == 0)
{
distance = dist;
best = s_sizes[i].icon;
{
distance = dist;
best = s_sizes[i].icon;
// FIXME: This code is not 100% correct, because stock pixmap are
// context-dependent and may be affected by theme engine, the
// correct value can only be obtained for given GtkWidget object.
// FIXME: This code is not 100% correct, because stock pixmap are
// context-dependent and may be affected by theme engine, the
// correct value can only be obtained for given GtkWidget object.
// Fool-proof implementation of stock bitmaps would extend wxBitmap
// with "stock-id" representation (in addition to pixmap and pixbuf
// ones) and would convert it to pixbuf when rendered.
// Fool-proof implementation of stock bitmaps would extend wxBitmap
// with "stock-id" representation (in addition to pixmap and pixbuf
// ones) and would convert it to pixbuf when rendered.
if (gs_gtkStyle == NULL)
{
GtkWidget *widget = gtk_button_new();
if (gs_gtkStyle == NULL)
{
GtkWidget *widget = gtk_button_new();
{
gtk_icon_size_lookup(iconsize, &size.x, &size.y);
}
{
gtk_icon_size_lookup(iconsize, &size.x, &size.y);
}
return gtk_icon_theme_load_icon(
gtk_icon_theme_get_default(),
iconname,
return gtk_icon_theme_load_icon(
gtk_icon_theme_get_default(),
iconname,
{
wxCharBuffer stockid = wxArtIDToStock(id);
GtkIconSize stocksize = (size == wxDefaultSize) ?
{
wxCharBuffer stockid = wxArtIDToStock(id);
GtkIconSize stocksize = (size == wxDefaultSize) ?
- wxArtClientToIconSize(client) :
+ wxArtClientToIconSize(client) :
FindClosestIconSize(size);
// we must have some size, this is arbitrary
FindClosestIconSize(size);
// we must have some size, this is arbitrary
if (!pixbuf)
return wxNullBitmap;
if (!pixbuf)
return wxNullBitmap;
if (!cb->m_hasVMT) return;
if (g_blockEventsOnDrag) return;
if (!cb->m_hasVMT) return;
if (g_blockEventsOnDrag) return;
if (cb->m_blockEvent) return;
#ifdef __WXGTK20__
if (cb->m_blockEvent) return;
#ifdef __WXGTK20__
bool inconsistent = gtk_toggle_button_get_inconsistent(toggle);
cb->m_blockEvent = true;
bool inconsistent = gtk_toggle_button_get_inconsistent(toggle);
cb->m_blockEvent = true;
if (!active && !inconsistent)
{
// checked -> undetermined
if (!active && !inconsistent)
{
// checked -> undetermined
{
wxFAIL_MSG(_T("3state wxCheckBox in unexpected state!"));
}
{
wxFAIL_MSG(_T("3state wxCheckBox in unexpected state!"));
}
cb->m_blockEvent = false;
}
else
cb->m_blockEvent = false;
}
else
g_delayedFocus = NULL;
}
}
g_delayedFocus = NULL;
}
}
if (wxUpdateUIEvent::CanUpdate(this))
UpdateWindowUI(wxUPDATE_UI_FROMIDLE);
}
if (wxUpdateUIEvent::CanUpdate(this))
UpdateWindowUI(wxUPDATE_UI_FROMIDLE);
}
wxCheckListBox::wxCheckListBox(wxWindow *parent, wxWindowID id,
const wxPoint& pos,
const wxSize& size,
wxCheckListBox::wxCheckListBox(wxWindow *parent, wxWindowID id,
const wxPoint& pos,
const wxSize& size,
const wxString *choices,
long style,
const wxValidator& validator,
const wxString *choices,
long style,
const wxValidator& validator,
wxT("selection received for targets, format %s"),
format.GetId().c_str() );
wxT("selection received for targets, format %s"),
format.GetId().c_str() );
-// printf( "format %s requested %s\n",
+// printf( "format %s requested %s\n",
// gdk_atom_name( atoms[i] ),
// gdk_atom_name( clipboard->m_targetRequested ) );
// gdk_atom_name( atoms[i] ),
// gdk_atom_name( clipboard->m_targetRequested ) );
wxString::FromAscii(gdk_atom_name(selection_data->selection)).c_str()
);
#endif
wxString::FromAscii(gdk_atom_name(selection_data->selection)).c_str()
);
#endif
if (!data->IsSupportedFormat( format )) return;
int size = data->GetDataSize( format );
if (!data->IsSupportedFormat( format )) return;
int size = data->GetDataSize( format );
wxT("wxClipboard now supports atom %s"),
array[i].GetId().c_str() );
wxT("wxClipboard now supports atom %s"),
array[i].GetId().c_str() );
-// printf( "added %s\n",
+// printf( "added %s\n",
// gdk_atom_name( array[i].GetFormatId() ) );
// gdk_atom_name( array[i].GetFormatId() ) );
gtk_selection_add_target( GTK_WIDGET(m_clipboardWidget),
clipboard,
array[i],
gtk_selection_add_target( GTK_WIDGET(m_clipboardWidget),
clipboard,
array[i],
void wxDataFormat::SetType( wxDataFormatId type )
{
PrepareFormats();
void wxDataFormat::SetType( wxDataFormatId type )
{
PrepareFormats();
#if wxUSE_UNICODE
if (m_type == wxDF_UNICODETEXT)
m_format = g_textAtom;
#if wxUSE_UNICODE
if (m_type == wxDF_UNICODETEXT)
m_format = g_textAtom;
PrepareFormats();
m_type = wxDF_PRIVATE;
wxString tmp( id );
PrepareFormats();
m_type = wxDF_PRIVATE;
wxString tmp( id );
- m_format = gdk_atom_intern( (const char*) tmp.ToAscii(), FALSE );
+ m_format = gdk_atom_intern( (const char*) tmp.ToAscii(), FALSE );
}
void wxDataFormat::PrepareFormats()
}
void wxDataFormat::PrepareFormats()
bool wxDataObject::IsSupportedFormat(const wxDataFormat& format, Direction dir) const
{
size_t nFormatCount = GetFormatCount(dir);
bool wxDataObject::IsSupportedFormat(const wxDataFormat& format, Direction dir) const
{
size_t nFormatCount = GetFormatCount(dir);
- if ( nFormatCount == 1 )
+ if ( nFormatCount == 1 )
{
return format == GetPreferredFormat();
}
{
return format == GetPreferredFormat();
}
{
wxDataFormat *formats = new wxDataFormat[nFormatCount];
GetAllFormats(formats,dir);
size_t n;
{
wxDataFormat *formats = new wxDataFormat[nFormatCount];
GetAllFormats(formats,dir);
size_t n;
- for ( n = 0; n < nFormatCount; n++ )
+ for ( n = 0; n < nFormatCount; n++ )
{
if ( formats[n] == format )
break;
{
if ( formats[n] == format )
break;
m_ok = FALSE;
m_cmap = gtk_widget_get_default_colormap();
m_ok = FALSE;
m_cmap = gtk_widget_get_default_colormap();
#ifdef __WXGTK20__
m_context = gdk_pango_context_get();
// Note: The Sun customised version of Pango shipping with Solaris 10
#ifdef __WXGTK20__
m_context = gdk_pango_context_get();
// Note: The Sun customised version of Pango shipping with Solaris 10
m_ok = FALSE;
m_cmap = gtk_widget_get_default_colormap();
m_ok = FALSE;
m_cmap = gtk_widget_get_default_colormap();
#ifdef __WXGTK20__
m_context = gdk_pango_context_get();
pango_context_set_language( m_context, gtk_get_default_language() );
#ifdef __WXGTK20__
m_context = gdk_pango_context_get();
pango_context_set_language( m_context, gtk_get_default_language() );
wxWindowDC::SetBrush( brush );
}
wxWindowDC::SetBrush( brush );
}
-void wxMemoryDC::SetBackground( const wxBrush& brushOrig )
+void wxMemoryDC::SetBackground( const wxBrush& brushOrig )
{
wxBrush brush(brushOrig);
{
wxBrush brush(brushOrig);
PostCreation(size);
SetBestSize(size);
PostCreation(size);
SetBestSize(size);
void GSocketGUIFunctionsTableConcrete::OnExit(void)
{
}
void GSocketGUIFunctionsTableConcrete::OnExit(void)
{
}
bool GSocketGUIFunctionsTableConcrete::Init_Socket(GSocket *socket)
{
gint *m_id;
bool GSocketGUIFunctionsTableConcrete::Init_Socket(GSocket *socket)
{
gint *m_id;
wxCommandEvent event( wxEVT_COMMAND_TEXT_UPDATED, win->GetId() );
event.SetEventObject( win );
wxCommandEvent event( wxEVT_COMMAND_TEXT_UPDATED, win->GetId() );
event.SetEventObject( win );
// see above
event.SetInt( (int)ceil(win->m_adjust->value) );
win->GetEventHandler()->ProcessEvent( event );
// see above
event.SetInt( (int)ceil(win->m_adjust->value) );
win->GetEventHandler()->ProcessEvent( event );
m_adjust = (GtkAdjustment*) gtk_adjustment_new( initial, min, max, 1.0, 5.0, 0.0);
m_widget = gtk_spin_button_new( m_adjust, 1, 0 );
m_adjust = (GtkAdjustment*) gtk_adjustment_new( initial, min, max, 1.0, 5.0, 0.0);
m_widget = gtk_spin_button_new( m_adjust, 1, 0 );
gtk_spin_button_set_wrap( GTK_SPIN_BUTTON(m_widget),
(int)(m_windowStyle & wxSP_WRAP) );
GtkEnableEvents();
gtk_spin_button_set_wrap( GTK_SPIN_BUTTON(m_widget),
(int)(m_windowStyle & wxSP_WRAP) );
GtkEnableEvents();
m_parent->DoAddChild( this );
PostCreation(size);
m_parent->DoAddChild( this );
PostCreation(size);
"value_changed",
GTK_SIGNAL_FUNC(gtk_spinctrl_callback),
(gpointer) this );
"value_changed",
GTK_SIGNAL_FUNC(gtk_spinctrl_callback),
(gpointer) this );
gtk_signal_connect( GTK_OBJECT(m_widget),
"changed",
GTK_SIGNAL_FUNC(gtk_spinctrl_text_changed_callback),
gtk_signal_connect( GTK_OBJECT(m_widget),
"changed",
GTK_SIGNAL_FUNC(gtk_spinctrl_text_changed_callback),
bool wxSpinCtrl::IsOwnGtkWindow( GdkWindow *window )
{
if (GTK_SPIN_BUTTON(m_widget)->entry.text_area == window) return TRUE;
bool wxSpinCtrl::IsOwnGtkWindow( GdkWindow *window )
{
if (GTK_SPIN_BUTTON(m_widget)->entry.text_area == window) return TRUE;
if (GTK_SPIN_BUTTON(m_widget)->panel == window) return TRUE;
return FALSE;
if (GTK_SPIN_BUTTON(m_widget)->panel == window) return TRUE;
return FALSE;
GdkBitmap *mask = (GdkBitmap *) NULL;
if (m_bitmap.GetMask())
mask = m_bitmap.GetMask()->GetBitmap();
GdkBitmap *mask = (GdkBitmap *) NULL;
if (m_bitmap.GetMask())
mask = m_bitmap.GetMask()->GetBitmap();
#ifdef __WXGTK20__
if (m_bitmap.HasPixbuf())
{
#ifdef __WXGTK20__
if (m_bitmap.HasPixbuf())
{
// effect of changing the control size which might not be desirable
wxControl::SetLabel(label);
m_widget = gtk_label_new( wxGTK_CONV( m_label ) );
// effect of changing the control size which might not be desirable
wxControl::SetLabel(label);
m_widget = gtk_label_new( wxGTK_CONV( m_label ) );
GtkJustification justify;
if ( style & wxALIGN_CENTER )
justify = GTK_JUSTIFY_CENTER;
GtkJustification justify;
if ( style & wxALIGN_CENTER )
justify = GTK_JUSTIFY_CENTER;
m_parent->DoAddChild( this );
PostCreation(size);
m_parent->DoAddChild( this );
PostCreation(size);
// the bug below only happens with GTK 2
#ifdef __WXGTK20__
if ( justify != GTK_JUSTIFY_LEFT )
// the bug below only happens with GTK 2
#ifdef __WXGTK20__
if ( justify != GTK_JUSTIFY_LEFT )
// GetBestSize is supposed to return unwrapped size
gtk_label_set_line_wrap( GTK_LABEL(m_widget), FALSE );
// GetBestSize is supposed to return unwrapped size
gtk_label_set_line_wrap( GTK_LABEL(m_widget), FALSE );
GtkRequisition req;
req.width = -1;
req.height = -1;
GtkRequisition req;
req.width = -1;
req.height = -1;
(m_widget, &req );
gtk_label_set_line_wrap( GTK_LABEL(m_widget), TRUE );
(m_widget, &req );
gtk_label_set_line_wrap( GTK_LABEL(m_widget), TRUE );
return wxSize (req.width, req.height);
}
return wxSize (req.width, req.height);
}
{
m_widget = GTK_WIDGET(egg_tray_icon_new("systray icon"));
gtk_window_set_resizable(GTK_WINDOW(m_widget), false);
{
m_widget = GTK_WIDGET(egg_tray_icon_new("systray icon"));
gtk_window_set_resizable(GTK_WINDOW(m_widget), false);
wxLogTrace(_T("systray"), _T("using freedesktop.org systray spec"));
}
wxLogTrace(_T("systray"), _T("using freedesktop.org systray spec"));
}
wxTopLevelWindow::Create(
NULL, wxID_ANY, _T("systray icon"),
wxDefaultPosition, wxDefaultSize,
wxDEFAULT_FRAME_STYLE | wxFRAME_NO_TASKBAR | wxSIMPLE_BORDER |
wxFRAME_SHAPED,
wxEmptyString /*eggtray doesn't like setting wmclass*/);
wxTopLevelWindow::Create(
NULL, wxID_ANY, _T("systray icon"),
wxDefaultPosition, wxDefaultSize,
wxDEFAULT_FRAME_STYLE | wxFRAME_NO_TASKBAR | wxSIMPLE_BORDER |
wxFRAME_SHAPED,
wxEmptyString /*eggtray doesn't like setting wmclass*/);
m_invokingWindow = NULL;
}
m_invokingWindow = NULL;
}
{
Display *display = GDK_DISPLAY();
Screen *screen = DefaultScreenOfDisplay(display);
{
Display *display = GDK_DISPLAY();
Screen *screen = DefaultScreenOfDisplay(display);
wxString name;
name.Printf(_T("_NET_SYSTEM_TRAY_S%d"), XScreenNumberOfScreen(screen));
Atom atom = XInternAtom(display, name.ToAscii(), False);
wxString name;
name.Printf(_T("_NET_SYSTEM_TRAY_S%d"), XScreenNumberOfScreen(screen));
Atom atom = XInternAtom(display, name.ToAscii(), False);
Window manager = XGetSelectionOwner(display, atom);
Window manager = XGetSelectionOwner(display, atom);
s_supported = (manager != None);
}
s_supported = (manager != None);
}
return (bool)s_supported;
}
return (bool)s_supported;
}
#include "gdk/gdk.h"
#include "gtk/gtk.h"
#include "gdk/gdk.h"
#include "gtk/gtk.h"
{
STATE_IDLE = 0,
STATE_RUNNING,
{
STATE_IDLE = 0,
STATE_RUNNING,
wxMutexError wxMutex::Unlock()
{
if (m_locked == 0)
wxMutexError wxMutex::Unlock()
{
if (m_locked == 0)
- return wxMUTEX_UNLOCKED;
+ return wxMUTEX_UNLOCKED;
release_lock(&(p_internal->p_mutex));
m_locked--;
return wxMUTEX_NO_ERROR;
release_lock(&(p_internal->p_mutex));
m_locked--;
return wxMUTEX_NO_ERROR;
IMPLEMENT_DYNAMIC_CLASS(wxThreadModule, wxModule)
IMPLEMENT_DYNAMIC_CLASS(wxThreadModule, wxModule)
-bool wxThreadModule::OnInit()
+bool wxThreadModule::OnInit()
{
wxMainMutex = new wxMutex();
wxThreadGuiInit();
{
wxMainMutex = new wxMutex();
wxThreadGuiInit();
wxTimer *timer = (wxTimer*)data;
// Don't change the order of anything in this callback!
wxTimer *timer = (wxTimer*)data;
// Don't change the order of anything in this callback!
if (timer->IsOneShot())
{
// This sets m_tag to -1
timer->Stop();
}
if (timer->IsOneShot())
{
// This sets m_tag to -1
timer->Stop();
}
// When getting called from GDK's timer handler we
// are no longer within GDK's grab on the GUI
// thread so we must lock it here ourselves.
// When getting called from GDK's timer handler we
// are no longer within GDK's grab on the GUI
// thread so we must lock it here ourselves.
{
wxString filename( file );
if (filename.IsEmpty()) filename = wxT(".wxWindows");
{
wxString filename( file );
if (filename.IsEmpty()) filename = wxT(".wxWindows");
wxFileConfig conf( wxTheApp->GetAppName(), wxTheApp->GetVendorName(), filename );
wxFileConfig conf( wxTheApp->GetAppName(), wxTheApp->GetVendorName(), filename );
return conf.Write( entry, value );
}
return conf.Write( entry, value );
}
ms.SetShiftDown(mask & GDK_SHIFT_MASK);
ms.SetAltDown(mask & GDK_MOD1_MASK);
ms.SetMetaDown(mask & GDK_MOD2_MASK);
ms.SetShiftDown(mask & GDK_SHIFT_MASK);
ms.SetAltDown(mask & GDK_MOD1_MASK);
ms.SetMetaDown(mask & GDK_MOD2_MASK);
//-----------------------------------------------------------------------------
// wxWindowGTK
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// wxWindowGTK
//-----------------------------------------------------------------------------
{
#define ART(wxid, gtkid) \
if (id == wxid) return gtkid;
{
#define ART(wxid, gtkid) \
if (id == wxid) return gtkid;
ART(wxART_ERROR, GTK_STOCK_DIALOG_ERROR)
ART(wxART_INFORMATION, GTK_STOCK_DIALOG_INFO)
ART(wxART_WARNING, GTK_STOCK_DIALOG_WARNING)
ART(wxART_QUESTION, GTK_STOCK_DIALOG_QUESTION)
ART(wxART_ERROR, GTK_STOCK_DIALOG_ERROR)
ART(wxART_INFORMATION, GTK_STOCK_DIALOG_INFO)
ART(wxART_WARNING, GTK_STOCK_DIALOG_WARNING)
ART(wxART_QUESTION, GTK_STOCK_DIALOG_QUESTION)
//ART(wxART_HELP_SIDE_PANEL, )
ART(wxART_HELP_SETTINGS, GTK_STOCK_SELECT_FONT)
//ART(wxART_HELP_BOOK, )
//ART(wxART_HELP_SIDE_PANEL, )
ART(wxART_HELP_SETTINGS, GTK_STOCK_SELECT_FONT)
//ART(wxART_HELP_BOOK, )
ART(wxART_FIND, GTK_STOCK_FIND)
ART(wxART_FIND_AND_REPLACE, GTK_STOCK_FIND_AND_REPLACE)
#endif
ART(wxART_FIND, GTK_STOCK_FIND)
ART(wxART_FIND_AND_REPLACE, GTK_STOCK_FIND_AND_REPLACE)
#endif
// only use larger bitmaps, scaling down looks better than scaling up:
if (size.x > s_sizes[i].x || size.y > s_sizes[i].y)
continue;
// only use larger bitmaps, scaling down looks better than scaling up:
if (size.x > s_sizes[i].x || size.y > s_sizes[i].y)
continue;
unsigned dist = (size.x - s_sizes[i].x) * (size.x - s_sizes[i].x) +
(size.y - s_sizes[i].y) * (size.y - s_sizes[i].y);
if (dist == 0)
unsigned dist = (size.x - s_sizes[i].x) * (size.x - s_sizes[i].x) +
(size.y - s_sizes[i].y) * (size.y - s_sizes[i].y);
if (dist == 0)
{
distance = dist;
best = s_sizes[i].icon;
{
distance = dist;
best = s_sizes[i].icon;
// FIXME: This code is not 100% correct, because stock pixmap are
// context-dependent and may be affected by theme engine, the
// correct value can only be obtained for given GtkWidget object.
// FIXME: This code is not 100% correct, because stock pixmap are
// context-dependent and may be affected by theme engine, the
// correct value can only be obtained for given GtkWidget object.
// Fool-proof implementation of stock bitmaps would extend wxBitmap
// with "stock-id" representation (in addition to pixmap and pixbuf
// ones) and would convert it to pixbuf when rendered.
// Fool-proof implementation of stock bitmaps would extend wxBitmap
// with "stock-id" representation (in addition to pixmap and pixbuf
// ones) and would convert it to pixbuf when rendered.
if (gs_gtkStyle == NULL)
{
GtkWidget *widget = gtk_button_new();
if (gs_gtkStyle == NULL)
{
GtkWidget *widget = gtk_button_new();
{
gtk_icon_size_lookup(iconsize, &size.x, &size.y);
}
{
gtk_icon_size_lookup(iconsize, &size.x, &size.y);
}
return gtk_icon_theme_load_icon(
gtk_icon_theme_get_default(),
iconname,
return gtk_icon_theme_load_icon(
gtk_icon_theme_get_default(),
iconname,
{
wxCharBuffer stockid = wxArtIDToStock(id);
GtkIconSize stocksize = (size == wxDefaultSize) ?
{
wxCharBuffer stockid = wxArtIDToStock(id);
GtkIconSize stocksize = (size == wxDefaultSize) ?
- wxArtClientToIconSize(client) :
+ wxArtClientToIconSize(client) :
FindClosestIconSize(size);
// we must have some size, this is arbitrary
FindClosestIconSize(size);
// we must have some size, this is arbitrary
if (!pixbuf)
return wxNullBitmap;
if (!pixbuf)
return wxNullBitmap;
if (!cb->m_hasVMT) return;
if (g_blockEventsOnDrag) return;
if (!cb->m_hasVMT) return;
if (g_blockEventsOnDrag) return;
if (cb->m_blockEvent) return;
#ifdef __WXGTK20__
if (cb->m_blockEvent) return;
#ifdef __WXGTK20__
bool inconsistent = gtk_toggle_button_get_inconsistent(toggle);
cb->m_blockEvent = true;
bool inconsistent = gtk_toggle_button_get_inconsistent(toggle);
cb->m_blockEvent = true;
if (!active && !inconsistent)
{
// checked -> undetermined
if (!active && !inconsistent)
{
// checked -> undetermined
{
wxFAIL_MSG(_T("3state wxCheckBox in unexpected state!"));
}
{
wxFAIL_MSG(_T("3state wxCheckBox in unexpected state!"));
}
cb->m_blockEvent = false;
}
else
cb->m_blockEvent = false;
}
else
g_delayedFocus = NULL;
}
}
g_delayedFocus = NULL;
}
}
if (wxUpdateUIEvent::CanUpdate(this))
UpdateWindowUI(wxUPDATE_UI_FROMIDLE);
}
if (wxUpdateUIEvent::CanUpdate(this))
UpdateWindowUI(wxUPDATE_UI_FROMIDLE);
}
wxCheckListBox::wxCheckListBox(wxWindow *parent, wxWindowID id,
const wxPoint& pos,
const wxSize& size,
wxCheckListBox::wxCheckListBox(wxWindow *parent, wxWindowID id,
const wxPoint& pos,
const wxSize& size,
const wxString *choices,
long style,
const wxValidator& validator,
const wxString *choices,
long style,
const wxValidator& validator,
wxT("selection received for targets, format %s"),
format.GetId().c_str() );
wxT("selection received for targets, format %s"),
format.GetId().c_str() );
-// printf( "format %s requested %s\n",
+// printf( "format %s requested %s\n",
// gdk_atom_name( atoms[i] ),
// gdk_atom_name( clipboard->m_targetRequested ) );
// gdk_atom_name( atoms[i] ),
// gdk_atom_name( clipboard->m_targetRequested ) );
wxString::FromAscii(gdk_atom_name(selection_data->selection)).c_str()
);
#endif
wxString::FromAscii(gdk_atom_name(selection_data->selection)).c_str()
);
#endif
if (!data->IsSupportedFormat( format )) return;
int size = data->GetDataSize( format );
if (!data->IsSupportedFormat( format )) return;
int size = data->GetDataSize( format );
wxT("wxClipboard now supports atom %s"),
array[i].GetId().c_str() );
wxT("wxClipboard now supports atom %s"),
array[i].GetId().c_str() );
-// printf( "added %s\n",
+// printf( "added %s\n",
// gdk_atom_name( array[i].GetFormatId() ) );
// gdk_atom_name( array[i].GetFormatId() ) );
gtk_selection_add_target( GTK_WIDGET(m_clipboardWidget),
clipboard,
array[i],
gtk_selection_add_target( GTK_WIDGET(m_clipboardWidget),
clipboard,
array[i],
void wxDataFormat::SetType( wxDataFormatId type )
{
PrepareFormats();
void wxDataFormat::SetType( wxDataFormatId type )
{
PrepareFormats();
#if wxUSE_UNICODE
if (m_type == wxDF_UNICODETEXT)
m_format = g_textAtom;
#if wxUSE_UNICODE
if (m_type == wxDF_UNICODETEXT)
m_format = g_textAtom;
PrepareFormats();
m_type = wxDF_PRIVATE;
wxString tmp( id );
PrepareFormats();
m_type = wxDF_PRIVATE;
wxString tmp( id );
- m_format = gdk_atom_intern( (const char*) tmp.ToAscii(), FALSE );
+ m_format = gdk_atom_intern( (const char*) tmp.ToAscii(), FALSE );
}
void wxDataFormat::PrepareFormats()
}
void wxDataFormat::PrepareFormats()
bool wxDataObject::IsSupportedFormat(const wxDataFormat& format, Direction dir) const
{
size_t nFormatCount = GetFormatCount(dir);
bool wxDataObject::IsSupportedFormat(const wxDataFormat& format, Direction dir) const
{
size_t nFormatCount = GetFormatCount(dir);
- if ( nFormatCount == 1 )
+ if ( nFormatCount == 1 )
{
return format == GetPreferredFormat();
}
{
return format == GetPreferredFormat();
}
{
wxDataFormat *formats = new wxDataFormat[nFormatCount];
GetAllFormats(formats,dir);
size_t n;
{
wxDataFormat *formats = new wxDataFormat[nFormatCount];
GetAllFormats(formats,dir);
size_t n;
- for ( n = 0; n < nFormatCount; n++ )
+ for ( n = 0; n < nFormatCount; n++ )
{
if ( formats[n] == format )
break;
{
if ( formats[n] == format )
break;
m_ok = FALSE;
m_cmap = gtk_widget_get_default_colormap();
m_ok = FALSE;
m_cmap = gtk_widget_get_default_colormap();
#ifdef __WXGTK20__
m_context = gdk_pango_context_get();
// Note: The Sun customised version of Pango shipping with Solaris 10
#ifdef __WXGTK20__
m_context = gdk_pango_context_get();
// Note: The Sun customised version of Pango shipping with Solaris 10
m_ok = FALSE;
m_cmap = gtk_widget_get_default_colormap();
m_ok = FALSE;
m_cmap = gtk_widget_get_default_colormap();
#ifdef __WXGTK20__
m_context = gdk_pango_context_get();
pango_context_set_language( m_context, gtk_get_default_language() );
#ifdef __WXGTK20__
m_context = gdk_pango_context_get();
pango_context_set_language( m_context, gtk_get_default_language() );
wxWindowDC::SetBrush( brush );
}
wxWindowDC::SetBrush( brush );
}
-void wxMemoryDC::SetBackground( const wxBrush& brushOrig )
+void wxMemoryDC::SetBackground( const wxBrush& brushOrig )
{
wxBrush brush(brushOrig);
{
wxBrush brush(brushOrig);
PostCreation(size);
SetBestSize(size);
PostCreation(size);
SetBestSize(size);
void GSocketGUIFunctionsTableConcrete::OnExit(void)
{
}
void GSocketGUIFunctionsTableConcrete::OnExit(void)
{
}
bool GSocketGUIFunctionsTableConcrete::Init_Socket(GSocket *socket)
{
gint *m_id;
bool GSocketGUIFunctionsTableConcrete::Init_Socket(GSocket *socket)
{
gint *m_id;
wxCommandEvent event( wxEVT_COMMAND_TEXT_UPDATED, win->GetId() );
event.SetEventObject( win );
wxCommandEvent event( wxEVT_COMMAND_TEXT_UPDATED, win->GetId() );
event.SetEventObject( win );
// see above
event.SetInt( (int)ceil(win->m_adjust->value) );
win->GetEventHandler()->ProcessEvent( event );
// see above
event.SetInt( (int)ceil(win->m_adjust->value) );
win->GetEventHandler()->ProcessEvent( event );
m_adjust = (GtkAdjustment*) gtk_adjustment_new( initial, min, max, 1.0, 5.0, 0.0);
m_widget = gtk_spin_button_new( m_adjust, 1, 0 );
m_adjust = (GtkAdjustment*) gtk_adjustment_new( initial, min, max, 1.0, 5.0, 0.0);
m_widget = gtk_spin_button_new( m_adjust, 1, 0 );
gtk_spin_button_set_wrap( GTK_SPIN_BUTTON(m_widget),
(int)(m_windowStyle & wxSP_WRAP) );
GtkEnableEvents();
gtk_spin_button_set_wrap( GTK_SPIN_BUTTON(m_widget),
(int)(m_windowStyle & wxSP_WRAP) );
GtkEnableEvents();
m_parent->DoAddChild( this );
PostCreation(size);
m_parent->DoAddChild( this );
PostCreation(size);
"value_changed",
GTK_SIGNAL_FUNC(gtk_spinctrl_callback),
(gpointer) this );
"value_changed",
GTK_SIGNAL_FUNC(gtk_spinctrl_callback),
(gpointer) this );
gtk_signal_connect( GTK_OBJECT(m_widget),
"changed",
GTK_SIGNAL_FUNC(gtk_spinctrl_text_changed_callback),
gtk_signal_connect( GTK_OBJECT(m_widget),
"changed",
GTK_SIGNAL_FUNC(gtk_spinctrl_text_changed_callback),
bool wxSpinCtrl::IsOwnGtkWindow( GdkWindow *window )
{
if (GTK_SPIN_BUTTON(m_widget)->entry.text_area == window) return TRUE;
bool wxSpinCtrl::IsOwnGtkWindow( GdkWindow *window )
{
if (GTK_SPIN_BUTTON(m_widget)->entry.text_area == window) return TRUE;
if (GTK_SPIN_BUTTON(m_widget)->panel == window) return TRUE;
return FALSE;
if (GTK_SPIN_BUTTON(m_widget)->panel == window) return TRUE;
return FALSE;
GdkBitmap *mask = (GdkBitmap *) NULL;
if (m_bitmap.GetMask())
mask = m_bitmap.GetMask()->GetBitmap();
GdkBitmap *mask = (GdkBitmap *) NULL;
if (m_bitmap.GetMask())
mask = m_bitmap.GetMask()->GetBitmap();
#ifdef __WXGTK20__
if (m_bitmap.HasPixbuf())
{
#ifdef __WXGTK20__
if (m_bitmap.HasPixbuf())
{
// effect of changing the control size which might not be desirable
wxControl::SetLabel(label);
m_widget = gtk_label_new( wxGTK_CONV( m_label ) );
// effect of changing the control size which might not be desirable
wxControl::SetLabel(label);
m_widget = gtk_label_new( wxGTK_CONV( m_label ) );
GtkJustification justify;
if ( style & wxALIGN_CENTER )
justify = GTK_JUSTIFY_CENTER;
GtkJustification justify;
if ( style & wxALIGN_CENTER )
justify = GTK_JUSTIFY_CENTER;
m_parent->DoAddChild( this );
PostCreation(size);
m_parent->DoAddChild( this );
PostCreation(size);
// the bug below only happens with GTK 2
#ifdef __WXGTK20__
if ( justify != GTK_JUSTIFY_LEFT )
// the bug below only happens with GTK 2
#ifdef __WXGTK20__
if ( justify != GTK_JUSTIFY_LEFT )
// GetBestSize is supposed to return unwrapped size
gtk_label_set_line_wrap( GTK_LABEL(m_widget), FALSE );
// GetBestSize is supposed to return unwrapped size
gtk_label_set_line_wrap( GTK_LABEL(m_widget), FALSE );
GtkRequisition req;
req.width = -1;
req.height = -1;
GtkRequisition req;
req.width = -1;
req.height = -1;
(m_widget, &req );
gtk_label_set_line_wrap( GTK_LABEL(m_widget), TRUE );
(m_widget, &req );
gtk_label_set_line_wrap( GTK_LABEL(m_widget), TRUE );
return wxSize (req.width, req.height);
}
return wxSize (req.width, req.height);
}
{
m_widget = GTK_WIDGET(egg_tray_icon_new("systray icon"));
gtk_window_set_resizable(GTK_WINDOW(m_widget), false);
{
m_widget = GTK_WIDGET(egg_tray_icon_new("systray icon"));
gtk_window_set_resizable(GTK_WINDOW(m_widget), false);
wxLogTrace(_T("systray"), _T("using freedesktop.org systray spec"));
}
wxLogTrace(_T("systray"), _T("using freedesktop.org systray spec"));
}
wxTopLevelWindow::Create(
NULL, wxID_ANY, _T("systray icon"),
wxDefaultPosition, wxDefaultSize,
wxDEFAULT_FRAME_STYLE | wxFRAME_NO_TASKBAR | wxSIMPLE_BORDER |
wxFRAME_SHAPED,
wxEmptyString /*eggtray doesn't like setting wmclass*/);
wxTopLevelWindow::Create(
NULL, wxID_ANY, _T("systray icon"),
wxDefaultPosition, wxDefaultSize,
wxDEFAULT_FRAME_STYLE | wxFRAME_NO_TASKBAR | wxSIMPLE_BORDER |
wxFRAME_SHAPED,
wxEmptyString /*eggtray doesn't like setting wmclass*/);
m_invokingWindow = NULL;
}
m_invokingWindow = NULL;
}
{
Display *display = GDK_DISPLAY();
Screen *screen = DefaultScreenOfDisplay(display);
{
Display *display = GDK_DISPLAY();
Screen *screen = DefaultScreenOfDisplay(display);
wxString name;
name.Printf(_T("_NET_SYSTEM_TRAY_S%d"), XScreenNumberOfScreen(screen));
Atom atom = XInternAtom(display, name.ToAscii(), False);
wxString name;
name.Printf(_T("_NET_SYSTEM_TRAY_S%d"), XScreenNumberOfScreen(screen));
Atom atom = XInternAtom(display, name.ToAscii(), False);
Window manager = XGetSelectionOwner(display, atom);
Window manager = XGetSelectionOwner(display, atom);
s_supported = (manager != None);
}
s_supported = (manager != None);
}
return (bool)s_supported;
}
return (bool)s_supported;
}
#include "gdk/gdk.h"
#include "gtk/gtk.h"
#include "gdk/gdk.h"
#include "gtk/gtk.h"
{
STATE_IDLE = 0,
STATE_RUNNING,
{
STATE_IDLE = 0,
STATE_RUNNING,
wxMutexError wxMutex::Unlock()
{
if (m_locked == 0)
wxMutexError wxMutex::Unlock()
{
if (m_locked == 0)
- return wxMUTEX_UNLOCKED;
+ return wxMUTEX_UNLOCKED;
release_lock(&(p_internal->p_mutex));
m_locked--;
return wxMUTEX_NO_ERROR;
release_lock(&(p_internal->p_mutex));
m_locked--;
return wxMUTEX_NO_ERROR;
IMPLEMENT_DYNAMIC_CLASS(wxThreadModule, wxModule)
IMPLEMENT_DYNAMIC_CLASS(wxThreadModule, wxModule)
-bool wxThreadModule::OnInit()
+bool wxThreadModule::OnInit()
{
wxMainMutex = new wxMutex();
wxThreadGuiInit();
{
wxMainMutex = new wxMutex();
wxThreadGuiInit();
wxTimer *timer = (wxTimer*)data;
// Don't change the order of anything in this callback!
wxTimer *timer = (wxTimer*)data;
// Don't change the order of anything in this callback!
if (timer->IsOneShot())
{
// This sets m_tag to -1
timer->Stop();
}
if (timer->IsOneShot())
{
// This sets m_tag to -1
timer->Stop();
}
// When getting called from GDK's timer handler we
// are no longer within GDK's grab on the GUI
// thread so we must lock it here ourselves.
// When getting called from GDK's timer handler we
// are no longer within GDK's grab on the GUI
// thread so we must lock it here ourselves.
{
wxString filename( file );
if (filename.IsEmpty()) filename = wxT(".wxWindows");
{
wxString filename( file );
if (filename.IsEmpty()) filename = wxT(".wxWindows");
wxFileConfig conf( wxTheApp->GetAppName(), wxTheApp->GetVendorName(), filename );
wxFileConfig conf( wxTheApp->GetAppName(), wxTheApp->GetVendorName(), filename );
return conf.Write( entry, value );
}
return conf.Write( entry, value );
}
ms.SetShiftDown(mask & GDK_SHIFT_MASK);
ms.SetAltDown(mask & GDK_MOD1_MASK);
ms.SetMetaDown(mask & GDK_MOD2_MASK);
ms.SetShiftDown(mask & GDK_SHIFT_MASK);
ms.SetAltDown(mask & GDK_MOD1_MASK);
ms.SetMetaDown(mask & GDK_MOD2_MASK);
//-----------------------------------------------------------------------------
// wxWindowGTK
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// wxWindowGTK
//-----------------------------------------------------------------------------