Motif wxNotebook about done; added print/preview to OGLEdit sample
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@925 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -40,8 +40,8 @@ public:
|
|||||||
inline void SetLabel(const wxString& str) { m_controlLabel = str; }
|
inline void SetLabel(const wxString& str) { m_controlLabel = str; }
|
||||||
inline wxString GetLabel(void) const { return m_controlLabel; }
|
inline wxString GetLabel(void) const { return m_controlLabel; }
|
||||||
|
|
||||||
inline void SetFont(wxFont *f) { m_labelFont = f; }
|
inline void SetFont(const wxFont& f) { m_labelFont = f; }
|
||||||
inline wxFont *GetFont(void) const { return m_labelFont; }
|
inline wxFont *GetFont(void) const { return (wxFont*) & m_labelFont; }
|
||||||
|
|
||||||
inline void SetSelected(bool sel) { m_isSelected = sel; }
|
inline void SetSelected(bool sel) { m_isSelected = sel; }
|
||||||
inline bool IsSelected(void) const { return m_isSelected; }
|
inline bool IsSelected(void) const { return m_isSelected; }
|
||||||
@@ -68,7 +68,7 @@ protected:
|
|||||||
wxTabView* m_view;
|
wxTabView* m_view;
|
||||||
wxString m_controlLabel;
|
wxString m_controlLabel;
|
||||||
bool m_isSelected;
|
bool m_isSelected;
|
||||||
wxFont* m_labelFont;
|
wxFont m_labelFont;
|
||||||
int m_offsetX; // Offsets from top-left of tab view area (the area below the tabs)
|
int m_offsetX; // Offsets from top-left of tab view area (the area below the tabs)
|
||||||
int m_offsetY;
|
int m_offsetY;
|
||||||
int m_width;
|
int m_width;
|
||||||
@@ -188,11 +188,11 @@ public:
|
|||||||
inline void SetVerticalTabTextSpacing(int s) { m_tabVerticalTextSpacing = s; }
|
inline void SetVerticalTabTextSpacing(int s) { m_tabVerticalTextSpacing = s; }
|
||||||
inline int GetVerticalTabTextSpacing() const { return m_tabVerticalTextSpacing; }
|
inline int GetVerticalTabTextSpacing() const { return m_tabVerticalTextSpacing; }
|
||||||
|
|
||||||
inline wxFont *GetTabFont() const { return m_tabFont; }
|
inline wxFont *GetTabFont() const { return (wxFont*) & m_tabFont; }
|
||||||
inline void SetTabFont(wxFont *f) { m_tabFont = f; }
|
inline void SetTabFont(const wxFont& f) { m_tabFont = f; }
|
||||||
|
|
||||||
inline wxFont *GetSelectedTabFont() const { return m_tabSelectedFont; }
|
inline wxFont *GetSelectedTabFont() const { return (wxFont*) & m_tabSelectedFont; }
|
||||||
inline void SetSelectedTabFont(wxFont *f) { m_tabSelectedFont = f; }
|
inline void SetSelectedTabFont(const wxFont& f) { m_tabSelectedFont = f; }
|
||||||
// Find the node and the column at which this control is positioned.
|
// Find the node and the column at which this control is positioned.
|
||||||
wxNode *FindTabNodeAndColumn(wxTabControl *control, int *col) const ;
|
wxNode *FindTabNodeAndColumn(wxTabControl *control, int *col) const ;
|
||||||
|
|
||||||
@@ -253,8 +253,8 @@ protected:
|
|||||||
wxPen* m_backgroundPen;
|
wxPen* m_backgroundPen;
|
||||||
wxBrush* m_backgroundBrush;
|
wxBrush* m_backgroundBrush;
|
||||||
|
|
||||||
wxFont* m_tabFont;
|
wxFont m_tabFont;
|
||||||
wxFont* m_tabSelectedFont;
|
wxFont m_tabSelectedFont;
|
||||||
|
|
||||||
int m_noTabs;
|
int m_noTabs;
|
||||||
|
|
||||||
|
@@ -49,6 +49,9 @@ public:
|
|||||||
int GetSelection() const { return m_nSel; }
|
int GetSelection() const { return m_nSel; }
|
||||||
int GetOldSelection() const { return m_nOldSel; }
|
int GetOldSelection() const { return m_nOldSel; }
|
||||||
|
|
||||||
|
void SetSelection(int sel) { m_nSel = sel; }
|
||||||
|
void SetOldSelection(int oldSel) { m_nOldSel = oldSel; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
int m_nSel, // currently selected page
|
int m_nSel, // currently selected page
|
||||||
m_nOldSel; // previously selected page
|
m_nOldSel; // previously selected page
|
||||||
@@ -73,22 +76,7 @@ public:
|
|||||||
// Called when a tab is activated
|
// Called when a tab is activated
|
||||||
virtual void OnTabActivate(int activateId, int deactivateId);
|
virtual void OnTabActivate(int activateId, int deactivateId);
|
||||||
|
|
||||||
/*
|
|
||||||
// Specific to this class
|
|
||||||
void AddTabWindow(int id, wxWindow *window);
|
|
||||||
wxWindow *GetTabWindow(int id) const ;
|
|
||||||
void ClearWindows(bool deleteWindows = TRUE);
|
|
||||||
inline wxWindow *GetCurrentWindow() const { return m_currentWindow; }
|
|
||||||
void ShowWindowForTab(int id);
|
|
||||||
*/
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
/*
|
|
||||||
// List of panels, one for each tab. Indexed
|
|
||||||
// by tab ID.
|
|
||||||
wxList m_tabWindows;
|
|
||||||
wxWindow* m_currentWindow;
|
|
||||||
*/
|
|
||||||
wxNotebook* m_notebook;
|
wxNotebook* m_notebook;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -204,6 +192,7 @@ public:
|
|||||||
virtual void ChangeFont(bool keepOriginalSize = TRUE);
|
virtual void ChangeFont(bool keepOriginalSize = TRUE);
|
||||||
virtual void ChangeBackgroundColour();
|
virtual void ChangeBackgroundColour();
|
||||||
virtual void ChangeForegroundColour();
|
virtual void ChangeForegroundColour();
|
||||||
|
virtual wxRect GetAvailableClientSize();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
// common part of all ctors
|
// common part of all ctors
|
||||||
|
@@ -190,6 +190,7 @@ END_EVENT_TABLE()
|
|||||||
MyCanvas::MyCanvas(wxWindow *parent, const wxPoint& pos, const wxSize& size):
|
MyCanvas::MyCanvas(wxWindow *parent, const wxPoint& pos, const wxSize& size):
|
||||||
wxScrolledWindow(parent, -1, pos, size, wxSUNKEN_BORDER|wxVSCROLL|wxHSCROLL)
|
wxScrolledWindow(parent, -1, pos, size, wxSUNKEN_BORDER|wxVSCROLL|wxHSCROLL)
|
||||||
{
|
{
|
||||||
|
SetBackgroundColour(wxColour("WHITE"));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Define the repainting behaviour
|
// Define the repainting behaviour
|
||||||
|
@@ -81,12 +81,14 @@ void MyApp::InitTabView(wxNotebook* notebook, wxWindow* window)
|
|||||||
|
|
||||||
// Add some panels
|
// Add some panels
|
||||||
wxPanel *panel1 = new wxPanel(notebook, -1);
|
wxPanel *panel1 = new wxPanel(notebook, -1);
|
||||||
|
// panel1->SetBackgroundColour(wxColour("RED"));
|
||||||
(void)new wxButton(panel1, -1, "Press me", wxPoint(10, 10));
|
(void)new wxButton(panel1, -1, "Press me", wxPoint(10, 10));
|
||||||
(void)new wxTextCtrl(panel1, -1, "1234", wxPoint(10, 40), wxSize(120, 150));
|
(void)new wxTextCtrl(panel1, -1, "1234", wxPoint(10, 40), wxSize(120, 150));
|
||||||
|
|
||||||
notebook->AddPage(panel1, "Cat");
|
notebook->AddPage(panel1, "Cat");
|
||||||
|
|
||||||
wxPanel *panel2 = new wxPanel(notebook, -1);
|
wxPanel *panel2 = new wxPanel(notebook, -1);
|
||||||
|
panel2->SetBackgroundColour(wxColour("BLUE"));
|
||||||
|
|
||||||
wxString animals[] = { "Fox", "Hare", "Rabbit", "Sabre-toothed tiger", "T Rex" };
|
wxString animals[] = { "Fox", "Hare", "Rabbit", "Sabre-toothed tiger", "T Rex" };
|
||||||
(void)new wxListBox(panel2, -1, wxPoint(5, 5), wxSize(170, 80), 5, animals);
|
(void)new wxListBox(panel2, -1, wxPoint(5, 5), wxSize(170, 80), 5, animals);
|
||||||
@@ -95,6 +97,14 @@ void MyApp::InitTabView(wxNotebook* notebook, wxWindow* window)
|
|||||||
wxTE_MULTILINE);
|
wxTE_MULTILINE);
|
||||||
|
|
||||||
notebook->AddPage(panel2, "Dog");
|
notebook->AddPage(panel2, "Dog");
|
||||||
|
|
||||||
|
wxPanel *panel3 = new wxPanel(notebook, -1);
|
||||||
|
panel3->SetBackgroundColour(wxColour("WHITE"));
|
||||||
|
notebook->AddPage(panel3, "Goat");
|
||||||
|
|
||||||
|
wxPanel *panel4 = new wxPanel(notebook, -1);
|
||||||
|
panel4->SetBackgroundColour(wxColour("YELLOW"));
|
||||||
|
notebook->AddPage(panel4, "Sheep");
|
||||||
}
|
}
|
||||||
|
|
||||||
BEGIN_EVENT_TABLE(MyDialog, wxDialog)
|
BEGIN_EVENT_TABLE(MyDialog, wxDialog)
|
||||||
|
@@ -1087,7 +1087,7 @@ void wxListMainWindow::OnRenameAccept()
|
|||||||
|
|
||||||
void wxListMainWindow::OnMouse( wxMouseEvent &event )
|
void wxListMainWindow::OnMouse( wxMouseEvent &event )
|
||||||
{
|
{
|
||||||
if (GetParent()->ProcessEvent( event)) return;
|
if (GetParent()->GetEventHandler()->ProcessEvent( event)) return;
|
||||||
|
|
||||||
if (!m_current) return;
|
if (!m_current) return;
|
||||||
if (m_dirty) return;
|
if (m_dirty) return;
|
||||||
@@ -1402,7 +1402,7 @@ void wxListMainWindow::OnSetFocus( wxFocusEvent &WXUNUSED(event) )
|
|||||||
|
|
||||||
wxFocusEvent event( wxEVT_SET_FOCUS, GetParent()->GetId() );
|
wxFocusEvent event( wxEVT_SET_FOCUS, GetParent()->GetId() );
|
||||||
event.SetEventObject( GetParent() );
|
event.SetEventObject( GetParent() );
|
||||||
GetParent()->ProcessEvent( event );
|
GetParent()->GetEventHandler()->ProcessEvent( event );
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxListMainWindow::OnKillFocus( wxFocusEvent &WXUNUSED(event) )
|
void wxListMainWindow::OnKillFocus( wxFocusEvent &WXUNUSED(event) )
|
||||||
@@ -2054,7 +2054,7 @@ void wxListMainWindow::SortItems( wxListCtrlCompare fn, long data )
|
|||||||
|
|
||||||
bool wxListMainWindow::OnListNotify( wxListEvent &event )
|
bool wxListMainWindow::OnListNotify( wxListEvent &event )
|
||||||
{
|
{
|
||||||
if (GetParent()) GetParent()->ProcessEvent( event );
|
if (GetParent()) GetParent()->GetEventHandler()->ProcessEvent( event );
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -43,7 +43,6 @@ wxTabControl::wxTabControl(wxTabView *v)
|
|||||||
{
|
{
|
||||||
m_view = v;
|
m_view = v;
|
||||||
m_isSelected = FALSE;
|
m_isSelected = FALSE;
|
||||||
m_labelFont = (wxFont *) NULL;
|
|
||||||
m_offsetX = 0;
|
m_offsetX = 0;
|
||||||
m_offsetY = 0;
|
m_offsetY = 0;
|
||||||
m_width = 0;
|
m_width = 0;
|
||||||
@@ -86,7 +85,11 @@ void wxTabControl::OnDraw(wxDC& dc, bool lastInRow)
|
|||||||
dc.SetBrush(*m_view->GetBackgroundBrush());
|
dc.SetBrush(*m_view->GetBackgroundBrush());
|
||||||
|
|
||||||
// Add 1 because the pen is transparent. Under Motif, may be different.
|
// Add 1 because the pen is transparent. Under Motif, may be different.
|
||||||
|
#ifdef __WXMOTIF__
|
||||||
|
dc.DrawRectangle(tabX, tabY, (GetWidth()+1), (GetHeight() + tabHeightInc));
|
||||||
|
#else
|
||||||
dc.DrawRectangle(tabX, tabY, (GetWidth()+1), (GetHeight() + 1 + tabHeightInc));
|
dc.DrawRectangle(tabX, tabY, (GetWidth()+1), (GetHeight() + 1 + tabHeightInc));
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
// Draw highlight and shadow
|
// Draw highlight and shadow
|
||||||
@@ -152,6 +155,10 @@ void wxTabControl::OnDraw(wxDC& dc, bool lastInRow)
|
|||||||
if ( GetRowPosition() < (maxPositions - 1) )
|
if ( GetRowPosition() < (maxPositions - 1) )
|
||||||
topY = tabY + GetHeight() + tabHeightInc;
|
topY = tabY + GetHeight() + tabHeightInc;
|
||||||
|
|
||||||
|
#ifdef __WXMOTIF__
|
||||||
|
topY -= 1;
|
||||||
|
#endif
|
||||||
|
|
||||||
// Shadow
|
// Shadow
|
||||||
dc.DrawLine((tabX + GetWidth()), tabY, (tabX + GetWidth()), topY);
|
dc.DrawLine((tabX + GetWidth()), tabY, (tabX + GetWidth()), topY);
|
||||||
// Draw black line to emphasize shadow
|
// Draw black line to emphasize shadow
|
||||||
@@ -170,6 +177,10 @@ void wxTabControl::OnDraw(wxDC& dc, bool lastInRow)
|
|||||||
if (tabBeneath && tabBeneath->IsSelected())
|
if (tabBeneath && tabBeneath->IsSelected())
|
||||||
subtractThis = (m_view->GetTabSelectionHeight() - m_view->GetTabHeight());
|
subtractThis = (m_view->GetTabSelectionHeight() - m_view->GetTabHeight());
|
||||||
|
|
||||||
|
#ifdef __WXMOTIF__
|
||||||
|
subtractThis += 1;
|
||||||
|
#endif
|
||||||
|
|
||||||
// Draw only to next tab down.
|
// Draw only to next tab down.
|
||||||
dc.DrawLine((tabX + GetWidth()), tabY,
|
dc.DrawLine((tabX + GetWidth()), tabY,
|
||||||
(tabX + GetWidth()), (tabY + GetHeight() + tabHeightInc - subtractThis));
|
(tabX + GetWidth()), (tabY + GetHeight() + tabHeightInc - subtractThis));
|
||||||
@@ -185,9 +196,9 @@ void wxTabControl::OnDraw(wxDC& dc, bool lastInRow)
|
|||||||
int textY = tabY + m_view->GetVerticalTabTextSpacing() + tabHeightInc;
|
int textY = tabY + m_view->GetVerticalTabTextSpacing() + tabHeightInc;
|
||||||
|
|
||||||
if (m_isSelected)
|
if (m_isSelected)
|
||||||
dc.SetFont(*m_view->GetSelectedTabFont());
|
dc.SetFont(* m_view->GetSelectedTabFont());
|
||||||
else
|
else
|
||||||
dc.SetFont(*GetFont());
|
dc.SetFont(* GetFont());
|
||||||
|
|
||||||
wxColour col(m_view->GetTextColour());
|
wxColour col(m_view->GetTextColour());
|
||||||
dc.SetTextForeground(col);
|
dc.SetTextForeground(col);
|
||||||
@@ -510,13 +521,14 @@ wxTabView::wxTabView(long style)
|
|||||||
m_shadowPen = wxGREY_PEN;
|
m_shadowPen = wxGREY_PEN;
|
||||||
m_backgroundPen = wxLIGHT_GREY_PEN;
|
m_backgroundPen = wxLIGHT_GREY_PEN;
|
||||||
m_backgroundBrush = wxLIGHT_GREY_BRUSH;
|
m_backgroundBrush = wxLIGHT_GREY_BRUSH;
|
||||||
m_tabFont = wxTheFontList->FindOrCreateFont(9, wxSWISS, wxNORMAL, wxNORMAL);
|
m_tabFont = wxSystemSettings::GetSystemFont(wxSYS_DEFAULT_GUI_FONT);
|
||||||
m_tabSelectedFont = wxTheFontList->FindOrCreateFont(9, wxSWISS, wxNORMAL, wxBOLD);
|
m_tabSelectedFont = wxSystemSettings::GetSystemFont(wxSYS_DEFAULT_GUI_FONT);
|
||||||
m_window = (wxWindow *) NULL;
|
m_window = (wxWindow *) NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
wxTabView::~wxTabView()
|
wxTabView::~wxTabView()
|
||||||
{
|
{
|
||||||
|
ClearTabs(TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Automatically positions tabs
|
// Automatically positions tabs
|
||||||
@@ -578,7 +590,7 @@ wxTabControl *wxTabView::AddTab(int id, const wxString& label, wxTabControl *exi
|
|||||||
tabControl->SetSize(GetTabWidth(), GetTabHeight());
|
tabControl->SetSize(GetTabWidth(), GetTabHeight());
|
||||||
tabControl->SetId(id);
|
tabControl->SetId(id);
|
||||||
tabControl->SetLabel(label);
|
tabControl->SetLabel(label);
|
||||||
tabControl->SetFont(GetTabFont());
|
tabControl->SetFont(* GetTabFont());
|
||||||
|
|
||||||
tabLayer->Append(tabControl);
|
tabLayer->Append(tabControl);
|
||||||
m_noTabs ++;
|
m_noTabs ++;
|
||||||
@@ -779,7 +791,12 @@ void wxTabView::Draw(wxDC& dc)
|
|||||||
dc.DrawLine(
|
dc.DrawLine(
|
||||||
(GetViewRect().x),
|
(GetViewRect().x),
|
||||||
(GetViewRect().y + GetViewRect().height + 1),
|
(GetViewRect().y + GetViewRect().height + 1),
|
||||||
|
#if defined(__WXMOTIF__)
|
||||||
|
(GetViewRect().x + GetViewRect().width + 1),
|
||||||
|
#else
|
||||||
(GetViewRect().x + GetViewRect().width + 2),
|
(GetViewRect().x + GetViewRect().width + 2),
|
||||||
|
#endif
|
||||||
|
|
||||||
(GetViewRect().y + GetViewRect().height + 1)
|
(GetViewRect().y + GetViewRect().height + 1)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@@ -112,8 +112,6 @@ bool wxListBox::Create(wxWindow *parent, wxWindowID id,
|
|||||||
|
|
||||||
AttachWidget (parent, m_mainWidget, (WXWidget) NULL, pos.x, pos.y, width, height);
|
AttachWidget (parent, m_mainWidget, (WXWidget) NULL, pos.x, pos.y, width, height);
|
||||||
|
|
||||||
m_backgroundColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_WINDOW);
|
|
||||||
|
|
||||||
ChangeBackgroundColour();
|
ChangeBackgroundColour();
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
@@ -751,10 +749,41 @@ void wxListBox::ChangeFont(bool keepOriginalSize)
|
|||||||
void wxListBox::ChangeBackgroundColour()
|
void wxListBox::ChangeBackgroundColour()
|
||||||
{
|
{
|
||||||
wxWindow::ChangeBackgroundColour();
|
wxWindow::ChangeBackgroundColour();
|
||||||
|
|
||||||
|
Widget parent = XtParent ((Widget) m_mainWidget);
|
||||||
|
Widget hsb, vsb;
|
||||||
|
|
||||||
|
XtVaGetValues (parent,
|
||||||
|
XmNhorizontalScrollBar, &hsb,
|
||||||
|
XmNverticalScrollBar, &vsb,
|
||||||
|
NULL);
|
||||||
|
|
||||||
|
/* TODO: should scrollbars be affected? Should probably have separate
|
||||||
|
* function to change them (by default, taken from wxSystemSettings)
|
||||||
|
DoChangeBackgroundColour((WXWidget) hsb, m_backgroundColour, TRUE);
|
||||||
|
DoChangeBackgroundColour((WXWidget) vsb, m_backgroundColour, TRUE);
|
||||||
|
*/
|
||||||
|
|
||||||
|
DoChangeBackgroundColour((WXWidget) parent, m_backgroundColour, TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxListBox::ChangeForegroundColour()
|
void wxListBox::ChangeForegroundColour()
|
||||||
{
|
{
|
||||||
wxWindow::ChangeForegroundColour();
|
wxWindow::ChangeForegroundColour();
|
||||||
|
|
||||||
|
Widget parent = XtParent ((Widget) m_mainWidget);
|
||||||
|
Widget hsb, vsb;
|
||||||
|
|
||||||
|
XtVaGetValues (parent,
|
||||||
|
XmNhorizontalScrollBar, &hsb,
|
||||||
|
XmNverticalScrollBar, &vsb,
|
||||||
|
NULL);
|
||||||
|
/* TODO: should scrollbars be affected? Should probably have separate
|
||||||
|
* function to change them (by default, taken from wxSystemSettings)
|
||||||
|
DoChangeForegroundColour((WXWidget) hsb, m_foregroundColour);
|
||||||
|
DoChangeForegroundColour((WXWidget) vsb, m_foregroundColour);
|
||||||
|
DoChangeForegroundColour((WXWidget) parent, m_foregroundColour);
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@@ -26,6 +26,9 @@
|
|||||||
#include <wx/notebook.h>
|
#include <wx/notebook.h>
|
||||||
#include <wx/dcclient.h>
|
#include <wx/dcclient.h>
|
||||||
|
|
||||||
|
#include <Xm/Xm.h>
|
||||||
|
#include <wx/motif/private.h>
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// macros
|
// macros
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
@@ -96,16 +99,9 @@ bool wxNotebook::Create(wxWindow *parent,
|
|||||||
{
|
{
|
||||||
// base init
|
// base init
|
||||||
SetName(name);
|
SetName(name);
|
||||||
SetParent(parent);
|
|
||||||
|
|
||||||
m_windowId = id == -1 ? NewControlId() : id;
|
m_windowId = id == -1 ? NewControlId() : id;
|
||||||
|
|
||||||
// style
|
|
||||||
m_windowStyle = style;
|
|
||||||
|
|
||||||
if ( parent != NULL )
|
|
||||||
parent->AddChild(this);
|
|
||||||
|
|
||||||
// It's like a normal window...
|
// It's like a normal window...
|
||||||
if (!wxWindow::Create(parent, id, pos, size, style, name))
|
if (!wxWindow::Create(parent, id, pos, size, style, name))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
@@ -137,6 +133,9 @@ int wxNotebook::GetRowCount() const
|
|||||||
|
|
||||||
int wxNotebook::SetSelection(int nPage)
|
int wxNotebook::SetSelection(int nPage)
|
||||||
{
|
{
|
||||||
|
if (nPage == -1)
|
||||||
|
return 0;
|
||||||
|
|
||||||
wxASSERT( IS_VALID_PAGE(nPage) );
|
wxASSERT( IS_VALID_PAGE(nPage) );
|
||||||
|
|
||||||
ChangePage(m_nSelection, nPage);
|
ChangePage(m_nSelection, nPage);
|
||||||
@@ -250,6 +249,7 @@ bool wxNotebook::InsertPage(int nPage,
|
|||||||
wxCHECK( IS_VALID_PAGE(nPage) || nPage == GetPageCount(), FALSE );
|
wxCHECK( IS_VALID_PAGE(nPage) || nPage == GetPageCount(), FALSE );
|
||||||
|
|
||||||
m_tabView->AddTab(nPage, strText);
|
m_tabView->AddTab(nPage, strText);
|
||||||
|
pPage->Show(FALSE);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
if (bSelect)
|
if (bSelect)
|
||||||
@@ -323,9 +323,13 @@ void wxNotebook::OnSize(wxSizeEvent& event)
|
|||||||
unsigned int nCount = m_aPages.Count();
|
unsigned int nCount = m_aPages.Count();
|
||||||
for ( unsigned int nPage = 0; nPage < nCount; nPage++ ) {
|
for ( unsigned int nPage = 0; nPage < nCount; nPage++ ) {
|
||||||
wxNotebookPage *pPage = m_aPages[nPage];
|
wxNotebookPage *pPage = m_aPages[nPage];
|
||||||
pPage->SetSize(rect.x + 2, rect.y + 2, rect.width - 2, rect.height - 2);
|
if (pPage->IsShown())
|
||||||
if ( pPage->GetAutoLayout() )
|
{
|
||||||
pPage->Layout();
|
wxRect clientRect = GetAvailableClientSize();
|
||||||
|
pPage->SetSize(clientRect.x, clientRect.y, clientRect.width, clientRect.height);
|
||||||
|
if ( pPage->GetAutoLayout() )
|
||||||
|
pPage->Layout();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Refresh();
|
Refresh();
|
||||||
}
|
}
|
||||||
@@ -401,12 +405,20 @@ void wxNotebook::ChangePage(int nOldSel, int nSel)
|
|||||||
|
|
||||||
if ( nOldSel != -1 ) {
|
if ( nOldSel != -1 ) {
|
||||||
m_aPages[nOldSel]->Show(FALSE);
|
m_aPages[nOldSel]->Show(FALSE);
|
||||||
|
m_aPages[nOldSel]->Lower();
|
||||||
}
|
}
|
||||||
|
|
||||||
wxNotebookPage *pPage = m_aPages[nSel];
|
wxNotebookPage *pPage = m_aPages[nSel];
|
||||||
|
|
||||||
|
wxRect clientRect = GetAvailableClientSize();
|
||||||
|
pPage->SetSize(clientRect.x, clientRect.y, clientRect.width, clientRect.height);
|
||||||
|
|
||||||
pPage->Show(TRUE);
|
pPage->Show(TRUE);
|
||||||
|
pPage->Raise();
|
||||||
pPage->SetFocus();
|
pPage->SetFocus();
|
||||||
|
|
||||||
|
Refresh();
|
||||||
|
|
||||||
m_nSelection = nSel;
|
m_nSelection = nSel;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -438,6 +450,23 @@ void wxNotebook::OnPaint(wxPaintEvent& WXUNUSED(event) )
|
|||||||
m_tabView->Draw(dc);
|
m_tabView->Draw(dc);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
wxRect wxNotebook::GetAvailableClientSize()
|
||||||
|
{
|
||||||
|
int cw, ch;
|
||||||
|
GetClientSize(& cw, & ch);
|
||||||
|
|
||||||
|
int tabHeight = m_tabView->GetTotalTabHeight();
|
||||||
|
|
||||||
|
// TODO: these margins should be configurable.
|
||||||
|
wxRect rect;
|
||||||
|
rect.x = 6;
|
||||||
|
rect.y = tabHeight + 6;
|
||||||
|
rect.width = cw - 12;
|
||||||
|
rect.height = ch - 4 - rect.y ;
|
||||||
|
|
||||||
|
return rect;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* wxNotebookTabView
|
* wxNotebookTabView
|
||||||
*/
|
*/
|
||||||
@@ -448,8 +477,6 @@ wxNotebookTabView::wxNotebookTabView(wxNotebook *notebook, long style): wxTabVie
|
|||||||
{
|
{
|
||||||
m_notebook = notebook;
|
m_notebook = notebook;
|
||||||
|
|
||||||
// m_currentWindow = (wxWindow *) NULL;
|
|
||||||
|
|
||||||
m_notebook->SetTabView(this);
|
m_notebook->SetTabView(this);
|
||||||
|
|
||||||
SetWindow(m_notebook);
|
SetWindow(m_notebook);
|
||||||
@@ -457,7 +484,6 @@ wxNotebookTabView::wxNotebookTabView(wxNotebook *notebook, long style): wxTabVie
|
|||||||
|
|
||||||
wxNotebookTabView::~wxNotebookTabView(void)
|
wxNotebookTabView::~wxNotebookTabView(void)
|
||||||
{
|
{
|
||||||
// ClearWindows(TRUE);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Called when a tab is activated
|
// Called when a tab is activated
|
||||||
@@ -465,16 +491,44 @@ void wxNotebookTabView::OnTabActivate(int activateId, int deactivateId)
|
|||||||
{
|
{
|
||||||
if (!m_notebook)
|
if (!m_notebook)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
wxNotebookEvent event(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, m_notebook->GetId());
|
||||||
|
event.SetEventObject(m_notebook);
|
||||||
|
event.SetSelection(activateId);
|
||||||
|
event.SetOldSelection(deactivateId);
|
||||||
|
m_notebook->GetEventHandler()->ProcessEvent(event);
|
||||||
|
|
||||||
|
/*
|
||||||
wxWindow *oldWindow = ((deactivateId == -1) ? 0 : m_notebook->GetPage(deactivateId));
|
wxWindow *oldWindow = ((deactivateId == -1) ? 0 : m_notebook->GetPage(deactivateId));
|
||||||
wxWindow *newWindow = m_notebook->GetPage(activateId);
|
wxWindow *newWindow = m_notebook->GetPage(activateId);
|
||||||
|
|
||||||
if (oldWindow)
|
if (oldWindow)
|
||||||
|
{
|
||||||
oldWindow->Show(FALSE);
|
oldWindow->Show(FALSE);
|
||||||
|
oldWindow->Lower();
|
||||||
|
}
|
||||||
if (newWindow)
|
if (newWindow)
|
||||||
|
{
|
||||||
newWindow->Show(TRUE);
|
newWindow->Show(TRUE);
|
||||||
|
newWindow->Raise();
|
||||||
|
|
||||||
|
int cw, ch;
|
||||||
|
m_notebook->GetClientSize(& cw, & ch);
|
||||||
|
|
||||||
|
int tabHeight = GetTotalTabHeight();
|
||||||
|
wxRect rect;
|
||||||
|
rect.x = 4;
|
||||||
|
rect.y = tabHeight + 4;
|
||||||
|
rect.width = cw - 8;
|
||||||
|
rect.height = ch - 4 - rect.y ;
|
||||||
|
|
||||||
|
newWindow->SetSize(rect.x + 2, rect.y + 2, rect.width - 2, rect.height - 2);
|
||||||
|
newWindow->Refresh();
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO: only refresh the tab area.
|
||||||
m_notebook->Refresh();
|
m_notebook->Refresh();
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
|
@@ -74,7 +74,8 @@ wxColour wxSystemSettings::GetSystemColour(int index)
|
|||||||
case wxSYS_COLOUR_INFOBK:
|
case wxSYS_COLOUR_INFOBK:
|
||||||
case wxSYS_COLOUR_APPWORKSPACE:
|
case wxSYS_COLOUR_APPWORKSPACE:
|
||||||
{
|
{
|
||||||
return *wxWHITE;
|
return wxColour("LIGHT GREY");
|
||||||
|
// return *wxWHITE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return *wxWHITE;
|
return *wxWHITE;
|
||||||
|
@@ -646,11 +646,47 @@ void wxTextCtrl::ChangeFont(bool keepOriginalSize)
|
|||||||
void wxTextCtrl::ChangeBackgroundColour()
|
void wxTextCtrl::ChangeBackgroundColour()
|
||||||
{
|
{
|
||||||
wxWindow::ChangeBackgroundColour();
|
wxWindow::ChangeBackgroundColour();
|
||||||
|
|
||||||
|
Widget parent = XtParent ((Widget) m_mainWidget);
|
||||||
|
Widget hsb, vsb;
|
||||||
|
|
||||||
|
XtVaGetValues (parent,
|
||||||
|
XmNhorizontalScrollBar, &hsb,
|
||||||
|
XmNverticalScrollBar, &vsb,
|
||||||
|
NULL);
|
||||||
|
|
||||||
|
/* TODO: should scrollbars be affected? Should probably have separate
|
||||||
|
* function to change them (by default, taken from wxSystemSettings)
|
||||||
|
if (hsb)
|
||||||
|
DoChangeBackgroundColour((WXWidget) hsb, m_backgroundColour, TRUE);
|
||||||
|
if (vsb)
|
||||||
|
DoChangeBackgroundColour((WXWidget) vsb, m_backgroundColour, TRUE);
|
||||||
|
*/
|
||||||
|
|
||||||
|
DoChangeBackgroundColour((WXWidget) parent, m_backgroundColour, TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxTextCtrl::ChangeForegroundColour()
|
void wxTextCtrl::ChangeForegroundColour()
|
||||||
{
|
{
|
||||||
wxWindow::ChangeForegroundColour();
|
wxWindow::ChangeForegroundColour();
|
||||||
|
|
||||||
|
|
||||||
|
Widget parent = XtParent ((Widget) m_mainWidget);
|
||||||
|
Widget hsb, vsb;
|
||||||
|
|
||||||
|
XtVaGetValues (parent,
|
||||||
|
XmNhorizontalScrollBar, &hsb,
|
||||||
|
XmNverticalScrollBar, &vsb,
|
||||||
|
NULL);
|
||||||
|
|
||||||
|
/* TODO: should scrollbars be affected? Should probably have separate
|
||||||
|
* function to change them (by default, taken from wxSystemSettings)
|
||||||
|
if (hsb)
|
||||||
|
DoChangeForegroundColour((WXWidget) hsb, m_foregroundColour);
|
||||||
|
if (vsb)
|
||||||
|
DoChangeForegroundColour((WXWidget) vsb, m_foregroundColour);
|
||||||
|
*/
|
||||||
|
DoChangeForegroundColour((WXWidget) parent, m_foregroundColour);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void wxTextWindowChangedProc (Widget w, XtPointer clientData, XtPointer ptr)
|
static void wxTextWindowChangedProc (Widget w, XtPointer clientData, XtPointer ptr)
|
||||||
|
@@ -740,6 +740,8 @@ bool wxWindow::Show(bool show)
|
|||||||
{
|
{
|
||||||
if (m_borderWidget || m_scrolledWindow)
|
if (m_borderWidget || m_scrolledWindow)
|
||||||
{
|
{
|
||||||
|
if (m_drawingArea)
|
||||||
|
XtMapWidget((Widget) m_drawingArea);
|
||||||
XtMapWidget(m_borderWidget ? (Widget) m_borderWidget : (Widget) m_scrolledWindow);
|
XtMapWidget(m_borderWidget ? (Widget) m_borderWidget : (Widget) m_scrolledWindow);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -751,6 +753,8 @@ bool wxWindow::Show(bool show)
|
|||||||
{
|
{
|
||||||
if (m_borderWidget || m_scrolledWindow)
|
if (m_borderWidget || m_scrolledWindow)
|
||||||
{
|
{
|
||||||
|
if (m_drawingArea)
|
||||||
|
XtUnmapWidget((Widget) m_drawingArea);
|
||||||
XtUnmapWidget(m_borderWidget ? (Widget) m_borderWidget : (Widget) m_scrolledWindow);
|
XtUnmapWidget(m_borderWidget ? (Widget) m_borderWidget : (Widget) m_scrolledWindow);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -1387,7 +1391,18 @@ void wxWindow::RemoveChild(wxWindow *child)
|
|||||||
|
|
||||||
void wxWindow::DestroyChildren()
|
void wxWindow::DestroyChildren()
|
||||||
{
|
{
|
||||||
if (GetChildren()) {
|
if (GetChildren())
|
||||||
|
{
|
||||||
|
wxNode *node = GetChildren()->First();
|
||||||
|
while (node)
|
||||||
|
{
|
||||||
|
wxNode* next = node->Next();
|
||||||
|
wxWindow* child = (wxWindow*) node->Data();
|
||||||
|
delete child;
|
||||||
|
node = next;
|
||||||
|
}
|
||||||
|
GetChildren()->Clear();
|
||||||
|
#if 0
|
||||||
wxNode *node;
|
wxNode *node;
|
||||||
while ((node = GetChildren()->First()) != (wxNode *)NULL) {
|
while ((node = GetChildren()->First()) != (wxNode *)NULL) {
|
||||||
wxWindow *child;
|
wxWindow *child;
|
||||||
@@ -1397,6 +1412,7 @@ void wxWindow::DestroyChildren()
|
|||||||
delete node;
|
delete node;
|
||||||
}
|
}
|
||||||
} /* while */
|
} /* while */
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -854,7 +854,7 @@ bool wxApp::SendIdleEvents(wxWindow* win)
|
|||||||
|
|
||||||
wxIdleEvent event;
|
wxIdleEvent event;
|
||||||
event.SetEventObject(win);
|
event.SetEventObject(win);
|
||||||
win->ProcessEvent(event);
|
win->GetEventHandler()->ProcessEvent(event);
|
||||||
|
|
||||||
if (event.MoreRequested())
|
if (event.MoreRequested())
|
||||||
needMore = TRUE;
|
needMore = TRUE;
|
||||||
|
@@ -242,7 +242,7 @@ bool wxControl::MSWNotify(WXWPARAM wParam, WXLPARAM lParam)
|
|||||||
event.SetEventType(eventType);
|
event.SetEventType(eventType);
|
||||||
event.SetEventObject(this);
|
event.SetEventObject(this);
|
||||||
|
|
||||||
if ( !ProcessEvent(event) )
|
if ( !GetEventHandler()->ProcessEvent(event) )
|
||||||
return FALSE;
|
return FALSE;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
#else
|
#else
|
||||||
|
@@ -544,7 +544,7 @@ void wxFrame::OnSysColourChanged(wxSysColourChangedEvent& event)
|
|||||||
{
|
{
|
||||||
wxSysColourChangedEvent event2;
|
wxSysColourChangedEvent event2;
|
||||||
event2.SetEventObject( m_frameStatusBar );
|
event2.SetEventObject( m_frameStatusBar );
|
||||||
m_frameStatusBar->ProcessEvent(event2);
|
m_frameStatusBar->GetEventHandler()->ProcessEvent(event2);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Propagate the event to the non-top-level children
|
// Propagate the event to the non-top-level children
|
||||||
|
@@ -508,7 +508,7 @@ void wxMenu::ProcessCommand(wxCommandEvent & event)
|
|||||||
// Try the window the menu was popped up from (and up
|
// Try the window the menu was popped up from (and up
|
||||||
// through the hierarchy)
|
// through the hierarchy)
|
||||||
if ( !processed && GetInvokingWindow())
|
if ( !processed && GetInvokingWindow())
|
||||||
processed = GetInvokingWindow()->ProcessEvent(event);
|
processed = GetInvokingWindow()->GetEventHandler()->ProcessEvent(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
extern wxMenu *wxCurrentPopupMenu;
|
extern wxMenu *wxCurrentPopupMenu;
|
||||||
|
@@ -398,7 +398,7 @@ void wxNotebook::OnNavigationKey(wxNavigationKeyEvent& event)
|
|||||||
// pass to the parent
|
// pass to the parent
|
||||||
if ( GetParent() ) {
|
if ( GetParent() ) {
|
||||||
event.SetCurrentFocus(this);
|
event.SetCurrentFocus(this);
|
||||||
GetParent()->ProcessEvent(event);
|
GetParent()->GetEventHandler()->ProcessEvent(event);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -453,7 +453,7 @@ bool wxNotebook::MSWNotify(WXWPARAM wParam, WXLPARAM lParam)
|
|||||||
event.SetEventObject(this);
|
event.SetEventObject(this);
|
||||||
event.SetInt(LOWORD(wParam));
|
event.SetInt(LOWORD(wParam));
|
||||||
|
|
||||||
return ProcessEvent(event);
|
return GetEventHandler()->ProcessEvent(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
@@ -252,7 +252,7 @@ bool wxSpinButton::MSWNotify(WXWPARAM wParam, WXLPARAM lParam)
|
|||||||
event.eventObject = this;
|
event.eventObject = this;
|
||||||
event.SetEventType(eventType);
|
event.SetEventType(eventType);
|
||||||
|
|
||||||
if ( !ProcessEvent(event) )
|
if ( !GetEventHandler()->ProcessEvent(event) )
|
||||||
return FALSE;
|
return FALSE;
|
||||||
*/
|
*/
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
@@ -1034,7 +1034,7 @@ bool wxTextCtrl::MSWCommand(WXUINT param, WXWORD WXUNUSED(id))
|
|||||||
: wxEVT_SET_FOCUS,
|
: wxEVT_SET_FOCUS,
|
||||||
m_windowId);
|
m_windowId);
|
||||||
event.SetEventObject( this );
|
event.SetEventObject( this );
|
||||||
ProcessEvent(event);
|
GetEventHandler()->ProcessEvent(event);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -1083,7 +1083,7 @@ bool wxTextCtrl::MSWNotify(WXWPARAM wParam, WXLPARAM lParam)
|
|||||||
event.SetEventObject( this );
|
event.SetEventObject( this );
|
||||||
event.SetEventType(eventType);
|
event.SetEventType(eventType);
|
||||||
|
|
||||||
if ( !ProcessEvent(event) )
|
if ( !GetEventHandler()->ProcessEvent(event) )
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
@@ -3575,7 +3575,7 @@ void wxWindow::OnChar(wxKeyEvent& event)
|
|||||||
// propagate the TABs to the parent - it's up to it to decide what
|
// propagate the TABs to the parent - it's up to it to decide what
|
||||||
// to do with it
|
// to do with it
|
||||||
if ( GetParent() ) {
|
if ( GetParent() ) {
|
||||||
if ( GetParent()->ProcessEvent(event) )
|
if ( GetParent()->GetEventHandler()->ProcessEvent(event) )
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -66,10 +66,81 @@ bool DiagramView::OnCreate(wxDocument *doc, long flags)
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define CENTER FALSE // Place the drawing to the center of the page
|
||||||
|
|
||||||
|
|
||||||
// Sneakily gets used for default print/preview
|
// Sneakily gets used for default print/preview
|
||||||
// as well as drawing on the screen.
|
// as well as drawing on the screen.
|
||||||
void DiagramView::OnDraw(wxDC *dc)
|
void DiagramView::OnDraw(wxDC *dc)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
/* You might use THIS code if you were scaling
|
||||||
|
* graphics of known size to fit on the page.
|
||||||
|
*/
|
||||||
|
float w, h;
|
||||||
|
|
||||||
|
// We need to adjust for the graphic size, a formula will be added
|
||||||
|
float maxX = 900;
|
||||||
|
float maxY = 700;
|
||||||
|
// A better way of find the maxium values would be to search through
|
||||||
|
// the linked list
|
||||||
|
|
||||||
|
// Let's have at least 10 device units margin
|
||||||
|
float marginX = 10;
|
||||||
|
float marginY = 10;
|
||||||
|
|
||||||
|
// Add the margin to the graphic size
|
||||||
|
maxX += (2 * marginX);
|
||||||
|
maxY += (2 * marginY);
|
||||||
|
|
||||||
|
// Get the size of the DC in pixels
|
||||||
|
dc->GetSize (&w, &h);
|
||||||
|
|
||||||
|
// Calculate a suitable scaling factor
|
||||||
|
float scaleX = (float) (w / maxX);
|
||||||
|
float scaleY = (float) (h / maxY);
|
||||||
|
|
||||||
|
// Use x or y scaling factor, whichever fits on the DC
|
||||||
|
float actualScale = wxMin (scaleX, scaleY);
|
||||||
|
|
||||||
|
float posX, posY;
|
||||||
|
// Calculate the position on the DC for centring the graphic
|
||||||
|
if (CENTER == TRUE) // center the drawing
|
||||||
|
{
|
||||||
|
posX = (float) ((w - (200 * actualScale)) / 2.0);
|
||||||
|
posY = (float) ((h - (200 * actualScale)) / 2.0);
|
||||||
|
}
|
||||||
|
else // Use defined presets
|
||||||
|
{
|
||||||
|
posX = 10;
|
||||||
|
posY = 35;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Set the scale and origin
|
||||||
|
dc->SetUserScale (actualScale, actualScale);
|
||||||
|
dc->SetDeviceOrigin (posX, posY);
|
||||||
|
|
||||||
|
// This part was added to preform the print preview and printing functions
|
||||||
|
|
||||||
|
dc->BeginDrawing(); // Allows optimization of drawing code under MS Windows.
|
||||||
|
wxDiagram *diagram_p=((DiagramDocument*)GetDocument())->GetDiagram(); // Get the current diagram
|
||||||
|
if (diagram_p->GetShapeList())
|
||||||
|
{
|
||||||
|
wxCursor *old_cursor = NULL;
|
||||||
|
wxNode *current = diagram_p->GetShapeList()->First();
|
||||||
|
|
||||||
|
while (current) // Loop through the entire list of shapes
|
||||||
|
{
|
||||||
|
wxShape *object = (wxShape *)current->Data();
|
||||||
|
if (!object->GetParent())
|
||||||
|
{
|
||||||
|
object->Draw(* dc); // Draw the shape onto our printing dc
|
||||||
|
}
|
||||||
|
current = current->Next(); // Procede to the next shape in the list
|
||||||
|
}
|
||||||
|
}
|
||||||
|
dc->EndDrawing(); // Allows optimization of drawing code under MS Windows.
|
||||||
}
|
}
|
||||||
|
|
||||||
void DiagramView::OnUpdate(wxView *sender, wxObject *hint)
|
void DiagramView::OnUpdate(wxView *sender, wxObject *hint)
|
||||||
@@ -167,6 +238,7 @@ void DiagramView::OnEditLabel(wxCommandEvent& event)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Window implementations
|
* Window implementations
|
||||||
*/
|
*/
|
||||||
|
Reference in New Issue
Block a user