9067c6c537
With wxMSW it is possible to call e.g. wxToolBarTool::Enable(false) on a tool before calling wxToolBar::Realize() to create the tool in an initially disabled state but this wasn't done in wxGTK version. Override Realize() now under wxGTK to bring the native toolbar buttons state in sync with the internal state of the corresponding wxToolBarTools. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62994 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
103 lines
3.3 KiB
C++
103 lines
3.3 KiB
C++
/////////////////////////////////////////////////////////////////////////////
|
|
// Name: wx/gtk/toolbar.h
|
|
// Purpose: GTK toolbar
|
|
// Author: Robert Roebling
|
|
// RCS-ID: $Id$
|
|
// Copyright: (c) Robert Roebling
|
|
// Licence: wxWindows licence
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef _WX_GTK_TOOLBAR_H_
|
|
#define _WX_GTK_TOOLBAR_H_
|
|
|
|
#if wxUSE_TOOLBAR
|
|
|
|
// ----------------------------------------------------------------------------
|
|
// wxToolBar
|
|
// ----------------------------------------------------------------------------
|
|
|
|
class WXDLLIMPEXP_CORE wxToolBar : public wxToolBarBase
|
|
{
|
|
public:
|
|
// construction/destruction
|
|
wxToolBar() { Init(); }
|
|
wxToolBar( wxWindow *parent,
|
|
wxWindowID id,
|
|
const wxPoint& pos = wxDefaultPosition,
|
|
const wxSize& size = wxDefaultSize,
|
|
long style = wxTB_HORIZONTAL,
|
|
const wxString& name = wxToolBarNameStr )
|
|
{
|
|
Init();
|
|
|
|
Create(parent, id, pos, size, style, name);
|
|
}
|
|
|
|
bool Create( wxWindow *parent,
|
|
wxWindowID id,
|
|
const wxPoint& pos = wxDefaultPosition,
|
|
const wxSize& size = wxDefaultSize,
|
|
long style = wxTB_HORIZONTAL,
|
|
const wxString& name = wxToolBarNameStr );
|
|
|
|
virtual ~wxToolBar();
|
|
|
|
virtual wxToolBarToolBase *FindToolForPosition(wxCoord x, wxCoord y) const;
|
|
|
|
virtual void SetToolShortHelp(int id, const wxString& helpString);
|
|
|
|
virtual void SetWindowStyleFlag( long style );
|
|
|
|
virtual void SetToolNormalBitmap(int id, const wxBitmap& bitmap);
|
|
virtual void SetToolDisabledBitmap(int id, const wxBitmap& bitmap);
|
|
|
|
virtual bool Realize();
|
|
|
|
static wxVisualAttributes
|
|
GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL);
|
|
|
|
// implementation from now on
|
|
// --------------------------
|
|
|
|
void OnInternalIdle();
|
|
|
|
protected:
|
|
virtual wxSize DoGetBestSize() const;
|
|
virtual GdkWindow *GTKGetWindow(wxArrayGdkWindows& windows) const;
|
|
|
|
// implement base class pure virtuals
|
|
virtual bool DoInsertTool(size_t pos, wxToolBarToolBase *tool);
|
|
virtual bool DoDeleteTool(size_t pos, wxToolBarToolBase *tool);
|
|
|
|
virtual void DoEnableTool(wxToolBarToolBase *tool, bool enable);
|
|
virtual void DoToggleTool(wxToolBarToolBase *tool, bool toggle);
|
|
virtual void DoSetToggle(wxToolBarToolBase *tool, bool toggle);
|
|
|
|
virtual wxToolBarToolBase *CreateTool(int id,
|
|
const wxString& label,
|
|
const wxBitmap& bitmap1,
|
|
const wxBitmap& bitmap2,
|
|
wxItemKind kind,
|
|
wxObject *clientData,
|
|
const wxString& shortHelpString,
|
|
const wxString& longHelpString);
|
|
virtual wxToolBarToolBase *CreateTool(wxControl *control,
|
|
const wxString& label);
|
|
|
|
private:
|
|
void Init();
|
|
void GtkSetStyle();
|
|
GSList* GetRadioGroup(size_t pos);
|
|
virtual void AddChildGTK(wxWindowGTK* child);
|
|
|
|
GtkToolbar* m_toolbar;
|
|
GtkTooltips* m_tooltips;
|
|
|
|
DECLARE_DYNAMIC_CLASS(wxToolBar)
|
|
};
|
|
|
|
#endif // wxUSE_TOOLBAR
|
|
|
|
#endif
|
|
// _WX_GTK_TOOLBAR_H_
|