compilation fixes, doesn't work yet

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@4991 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
1999-12-16 18:10:38 +00:00
parent 9fb35cf180
commit 982b2cfc58
2 changed files with 55 additions and 33 deletions

View File

@@ -44,26 +44,35 @@ public:
virtual ~wxToolBar(); virtual ~wxToolBar();
// override/implement base class virtuals // override/implement base class virtuals
virtual wxToolBarTool *FindToolForPosition(wxCoord x, wxCoord y) const; virtual wxToolBarToolBase *FindToolForPosition(wxCoord x, wxCoord y) const;
virtual bool Realize(); virtual bool Realize();
// implementation from now on // implementation from now on
// find tool by widget // find tool by widget
wxToolBarTool *FindToolByWidget(WXWidget w) const; wxToolBarToolBase *FindToolByWidget(WXWidget w) const;
protected: protected:
// common part of all ctors // common part of all ctors
void Init(); void Init();
// implement base class pure virtuals // implement base class pure virtuals
virtual bool DoInsertTool(size_t pos, wxToolBarTool *tool); virtual bool DoInsertTool(size_t pos, wxToolBarToolBase *tool);
virtual bool DoDeleteTool(size_t pos, wxToolBarTool *tool); virtual bool DoDeleteTool(size_t pos, wxToolBarToolBase *tool);
virtual void DoEnableTool(wxToolBarTool *tool, bool enable); virtual void DoEnableTool(wxToolBarToolBase *tool, bool enable);
virtual void DoToggleTool(wxToolBarTool *tool, bool toggle); virtual void DoToggleTool(wxToolBarToolBase *tool, bool toggle);
virtual void DoSetToggle(wxToolBarTool *tool, bool toggle); virtual void DoSetToggle(wxToolBarToolBase *tool, bool toggle);
virtual wxToolBarToolBase *CreateTool(int id,
const wxBitmap& bitmap1,
const wxBitmap& bitmap2,
bool toggle,
wxObject *clientData,
const wxString& shortHelpString,
const wxString& longHelpString);
virtual wxToolBarToolBase *CreateTool(wxControl *control);
private: private:
DECLARE_DYNAMIC_CLASS(wxToolBar) DECLARE_DYNAMIC_CLASS(wxToolBar)

View File

@@ -130,8 +130,7 @@ wxString wxToolBarTimer::helpString;
// wxToolBarTool // wxToolBarTool
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
wxToolBarToolBase *wxToolBarToolBase::New(wxToolBar *tbar, wxToolBarToolBase *wxToolBar::CreateTool(int id,
int id,
const wxBitmap& bitmap1, const wxBitmap& bitmap1,
const wxBitmap& bitmap2, const wxBitmap& bitmap2,
bool toggle, bool toggle,
@@ -139,13 +138,13 @@ wxToolBarToolBase *wxToolBarToolBase::New(wxToolBar *tbar,
const wxString& shortHelpString, const wxString& shortHelpString,
const wxString& longHelpString) const wxString& longHelpString)
{ {
return new wxToolBarTool(tbar, id, bitmap1, bitmap2, toggle, return new wxToolBarTool(this, id, bitmap1, bitmap2, toggle,
clientData, shortHelpString, longHelpString); clientData, shortHelpString, longHelpString);
} }
wxToolBarToolBase *wxToolBarToolBase::New(wxToolBar *tbar, wxControl *control) wxToolBarToolBase *wxToolBar::CreateTool(wxControl *control)
{ {
return new wxToolBarTool(tbar, control); return new wxToolBarTool(this, control);
} }
void wxToolBarTool::Init() void wxToolBarTool::Init()
@@ -156,8 +155,11 @@ void wxToolBarTool::Init()
wxToolBarTool::~wxToolBarTool() wxToolBarTool::~wxToolBarTool()
{ {
if ( m_widget )
XtDestroyWidget(m_widget); XtDestroyWidget(m_widget);
XmDestroyPixmap(DefaultScreenOfDisplay((Display*)wxGetDisplay()), m_pixmap); if ( m_pixmap )
XmDestroyPixmap(DefaultScreenOfDisplay((Display*)wxGetDisplay()),
m_pixmap);
} }
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
@@ -383,6 +385,8 @@ bool wxToolBar::Realize()
insensPixmap2 = XCreateInsensitivePixmap((Display*) wxGetDisplay(), pixmap2); insensPixmap2 = XCreateInsensitivePixmap((Display*) wxGetDisplay(), pixmap2);
} }
tool->SetPixmap(pixmap2);
XtVaSetValues (button, XtVaSetValues (button,
XmNindicatorOn, False, XmNindicatorOn, False,
XmNshadowThickness, 2, XmNshadowThickness, 2,
@@ -413,6 +417,9 @@ bool wxToolBar::Realize()
pixmap2 = (Pixmap) bmp.GetArmPixmap(button); pixmap2 = (Pixmap) bmp.GetArmPixmap(button);
} }
tool->SetPixmap(pixmap2);
// Normal button // Normal button
XtVaSetValues(button, XtVaSetValues(button,
XmNlabelPixmap, pixmap, XmNlabelPixmap, pixmap,
@@ -420,6 +427,7 @@ bool wxToolBar::Realize()
XmNarmPixmap, pixmap2, XmNarmPixmap, pixmap2,
NULL); NULL);
} }
XtManageChild(button); XtManageChild(button);
{ {
@@ -447,48 +455,53 @@ bool wxToolBar::Realize()
return TRUE; return TRUE;
} }
wxToolBarTool *wxToolBar::FindToolForPosition(wxCoord WXUNUSED(x), wxToolBarToolBase *wxToolBar::FindToolForPosition(wxCoord WXUNUSED(x),
wxCoord WXUNUSED(y)) const wxCoord WXUNUSED(y)) const
{ {
wxFAIL_MSG( _T("TODO") ); wxFAIL_MSG( _T("TODO") );
return (wxToolBarTool *)NULL; return (wxToolBarToolBase *)NULL;
} }
bool wxToolBar::DoInsertTool(size_t WXUNUSED(pos), wxToolBarTool *tool) bool wxToolBar::DoInsertTool(size_t WXUNUSED(pos), wxToolBarToolBase *tool)
{ {
tool->Attach(this); tool->Attach(this);
return TRUE; return TRUE;
} }
bool wxToolBar::DoDeleteTool(size_t WXUNUSED(pos), wxToolBarTool *tool) bool wxToolBar::DoDeleteTool(size_t WXUNUSED(pos), wxToolBarToolBase *tool)
{ {
tool->Detach(); tool->Detach();
return TRUE; return TRUE;
} }
void wxToolBar::DoEnableTool(wxToolBarTool *tool, bool enable) void wxToolBar::DoEnableTool(wxToolBarToolBase *toolBase, bool enable)
{ {
wxToolBarTool *tool = (wxToolBarTool *)toolBase;
XtSetSensitive(tool->GetButtonWidget(), (Boolean) enable); XtSetSensitive(tool->GetButtonWidget(), (Boolean) enable);
} }
void wxToolBar::DoToggleTool(wxToolBarTool *tool, bool toggle) void wxToolBar::DoToggleTool(wxToolBarToolBase *toolBase, bool toggle)
{ {
wxToolBarTool *tool = (wxToolBarTool *)toolBase;
XmToggleButtonSetState(tool->GetButtonWidget(), (Boolean) toggle, False); XmToggleButtonSetState(tool->GetButtonWidget(), (Boolean) toggle, False);
} }
void wxToolBar::DoSetToggle(wxToolBarTool *tool, bool toggle) void wxToolBar::DoSetToggle(wxToolBarToolBase * WXUNUSED(tool),
bool WXUNUSED(toggle))
{ {
wxFAIL_MSG( _T("TODO") ); // nothing to do
} }
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// Motif callbacks // Motif callbacks
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
wxToolBarTool *wxToolBar::FindToolByWidget(WXWidget w) const wxToolBarToolBase *wxToolBar::FindToolByWidget(WXWidget w) const
{ {
wxToolBarToolsList::Node* node = m_tools.GetFirst(); wxToolBarToolsList::Node* node = m_tools.GetFirst();
while ( node ) while ( node )
@@ -502,7 +515,7 @@ wxToolBarTool *wxToolBar::FindToolByWidget(WXWidget w) const
node = node->GetNext(); node = node->GetNext();
} }
return (wxToolBarTool *)NULL; return (wxToolBarToolBase *)NULL;
} }
static void wxToolButtonCallback(Widget w, static void wxToolButtonCallback(Widget w,
@@ -510,7 +523,7 @@ static void wxToolButtonCallback(Widget w,
XtPointer WXUNUSED(ptr)) XtPointer WXUNUSED(ptr))
{ {
wxToolBar *toolBar = (wxToolBar *) clientData; wxToolBar *toolBar = (wxToolBar *) clientData;
wxToolBarTool *tool = toolBar->FindToolByWidget((WXWidget) w); wxToolBarToolBase *tool = toolBar->FindToolByWidget((WXWidget) w);
if ( !tool ) if ( !tool )
return; return;
@@ -534,7 +547,7 @@ static void wxToolButtonPopupCallback(Widget w,
static const int delayMilli = 800; static const int delayMilli = 800;
wxToolBar* toolBar = (wxToolBar*) client_data; wxToolBar* toolBar = (wxToolBar*) client_data;
wxToolBarTool *tool = toolBar->FindToolByWidget((WXWidget) w); wxToolBarToolBase *tool = toolBar->FindToolByWidget((WXWidget) w);
if ( !tool ) if ( !tool )
return; return;