projects
/
wxWidgets.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Rework the GTK WebKit backend history to remove the need for the map between wxWebHis...
[wxWidgets.git]
/
src
/
generic
/
tabg.cpp
diff --git
a/src/generic/tabg.cpp
b/src/generic/tabg.cpp
index 6c6ffa012047a0e1cdabf551ef3fff4170a279f1..2ce29fd0492a5056a240ed34e5f4334f94bc1c2d 100644
(file)
--- a/
src/generic/tabg.cpp
+++ b/
src/generic/tabg.cpp
@@
-1,6
+1,6
@@
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
-// Name: tabg.cpp
-// Purpose: Generic tabbed dialogs
+// Name:
src/generic/
tabg.cpp
+// Purpose: Generic tabbed dialogs
; used by wxMotif's wxNotebook
// Author: Julian Smart
// Modified by:
// Created: 01/02/97
// Author: Julian Smart
// Modified by:
// Created: 01/02/97
@@
-9,34
+9,28
@@
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-#pragma implementation "tabg.h"
-#endif
-
// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
#ifdef __BORLANDC__
// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
#ifdef __BORLANDC__
-#pragma hdrstop
+
#pragma hdrstop
#endif
#endif
-#if wxUSE_TAB_DIALOG
-
#ifndef WX_PRECOMP
#include "wx/settings.h"
#include "wx/intl.h"
#include "wx/dcclient.h"
#ifndef WX_PRECOMP
#include "wx/settings.h"
#include "wx/intl.h"
#include "wx/dcclient.h"
+ #include "wx/math.h"
#endif
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
#endif
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
-#include <math.h>
-#include "wx/
tab
.h"
+#include "wx/
generic/tabg
.h"
#include "wx/listimpl.cpp"
#include "wx/listimpl.cpp"
-WX_DEFINE_LIST(wxTabLayerList)
;
+WX_DEFINE_LIST(wxTabLayerList)
// not defined: use old, square tab implementation (fills in tabs)
// defined: use new, rounded tab implementation (doesn't colour in tabs)
// not defined: use old, square tab implementation (fills in tabs)
// defined: use new, rounded tab implementation (doesn't colour in tabs)
@@
-49,7
+43,7
@@
IMPLEMENT_DYNAMIC_CLASS(wxTabControl, wxObject)
wxTabControl::wxTabControl(wxTabView *v)
{
m_view = v;
wxTabControl::wxTabControl(wxTabView *v)
{
m_view = v;
- m_isSelected =
FALSE
;
+ m_isSelected =
false
;
m_offsetX = 0;
m_offsetY = 0;
m_width = 0;
m_offsetX = 0;
m_offsetY = 0;
m_width = 0;
@@
-89,7
+83,8
@@
void wxTabControl::OnDraw(wxDC& dc, bool lastInRow)
// Draw grey background
if (m_view->GetTabStyle() & wxTAB_STYLE_COLOUR_INTERIOR)
{
// Draw grey background
if (m_view->GetTabStyle() & wxTAB_STYLE_COLOUR_INTERIOR)
{
- dc.SetBrush(*m_view->GetBackgroundBrush());
+ if(m_view->GetBackgroundBrush())
+ dc.SetBrush(*m_view->GetBackgroundBrush());
// Add 1 because the pen is transparent. Under Motif, may be different.
#ifdef __WXMOTIF__
// Add 1 because the pen is transparent. Under Motif, may be different.
#ifdef __WXMOTIF__
@@
-210,7
+205,7
@@
void wxTabControl::OnDraw(wxDC& dc, bool lastInRow)
wxColour col(m_view->GetTextColour());
dc.SetTextForeground(col);
dc.SetBackgroundMode(wxTRANSPARENT);
wxColour col(m_view->GetTextColour());
dc.SetTextForeground(col);
dc.SetBackgroundMode(wxTRANSPARENT);
-
long
textWidth, textHeight;
+
wxCoord
textWidth, textHeight;
dc.GetTextExtent(GetLabel(), &textWidth, &textHeight);
int textX = (int)(tabX + (GetWidth() - textWidth)/2.0);
dc.GetTextExtent(GetLabel(), &textWidth, &textHeight);
int textX = (int)(tabX + (GetWidth() - textWidth)/2.0);
@@
-502,9
+497,9
@@
bool wxTabControl::HitTest(int x, int y) const
int tabY2 = tabY1 + GetHeight();
if (x >= tabX1 && y >= tabY1 && x <= tabX2 && y <= tabY2)
int tabY2 = tabY1 + GetHeight();
if (x >= tabX1 && y >= tabY1 && x <= tabX2 && y <= tabY2)
- return
TRUE
;
+ return
true
;
else
else
- return
FALSE
;
+ return
false
;
}
IMPLEMENT_DYNAMIC_CLASS(wxTabView, wxObject)
}
IMPLEMENT_DYNAMIC_CLASS(wxTabView, wxObject)
@@
-527,20
+522,19
@@
wxTabView::wxTabView(long style)
m_tabViewRect.x = 300;
m_highlightColour = *wxWHITE;
m_shadowColour = wxColour(128, 128, 128);
m_tabViewRect.x = 300;
m_highlightColour = *wxWHITE;
m_shadowColour = wxColour(128, 128, 128);
-
m_backgroundColour = *wxLIGHT_GREY
;
+
// m_backgroundColour = wxSystemSettings::GetColour(wxSYS_COLOUR_BTNFACE)
;
m_textColour = *wxBLACK;
m_highlightPen = wxWHITE_PEN;
m_shadowPen = wxGREY_PEN;
m_textColour = *wxBLACK;
m_highlightPen = wxWHITE_PEN;
m_shadowPen = wxGREY_PEN;
- m_backgroundPen = wxLIGHT_GREY_PEN;
- m_backgroundBrush = wxLIGHT_GREY_BRUSH;
+ // SetBackgroundColour(m_backgroundColour);
m_tabFont = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT);
m_tabSelectedFont = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT);
m_tabFont = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT);
m_tabSelectedFont = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT);
- m_window =
(wxWindow *)
NULL;
+ m_window = NULL;
}
wxTabView::~wxTabView()
{
}
wxTabView::~wxTabView()
{
- ClearTabs(
TRUE
);
+ ClearTabs(
true
);
}
// Automatically positions tabs
}
// Automatically positions tabs
@@
-585,7
+579,7
@@
wxTabControl *wxTabView::AddTab(int id, const wxString& label, wxTabControl *exi
tabControl->SetRowPosition(tabLayer->GetCount());
tabControl->SetColPosition(layer);
tabControl->SetRowPosition(tabLayer->GetCount());
tabControl->SetColPosition(layer);
- wxTabControl *lastTab =
(wxTabControl *)
NULL;
+ wxTabControl *lastTab = NULL;
if (lastTabNode)
lastTab = (wxTabControl *)lastTabNode->GetData();
if (lastTabNode)
lastTab = (wxTabControl *)lastTabNode->GetData();
@@
-631,22
+625,22
@@
bool wxTabView::RemoveTab(int id)
// The layout has changed
LayoutTabs();
// The layout has changed
LayoutTabs();
- return
TRUE
;
+ return
true
;
}
tabNode = tabNode->GetNext();
}
layerNode = layerNode->GetNext();
}
}
tabNode = tabNode->GetNext();
}
layerNode = layerNode->GetNext();
}
- return
FALSE
;
+ return
false
;
}
bool wxTabView::SetTabText(int id, const wxString& label)
{
wxTabControl* control = FindTabControlForId(id);
if (!control)
}
bool wxTabView::SetTabText(int id, const wxString& label)
{
wxTabControl* control = FindTabControlForId(id);
if (!control)
- return
FALSE
;
+ return
false
;
control->SetLabel(label);
control->SetLabel(label);
- return
TRUE
;
+ return
true
;
}
wxString wxTabView::GetTabText(int id) const
}
wxString wxTabView::GetTabText(int id) const
@@
-735,7
+729,7
@@
void wxTabView::LayoutTabs(void)
layerNode = nextLayerNode;
}
layerNode = nextLayerNode;
}
- wxTabControl *lastTab =
(wxTabControl *)
NULL;
+ wxTabControl *lastTab = NULL;
wxTabLayer *currentLayer = new wxTabLayer;
m_layers.Append(currentLayer);
wxTabLayer *currentLayer = new wxTabLayer;
m_layers.Append(currentLayer);
@@
-757,7
+751,7
@@
void wxTabView::LayoutTabs(void)
{
currentLayer = new wxTabLayer;
m_layers.Append(currentLayer);
{
currentLayer = new wxTabLayer;
m_layers.Append(currentLayer);
- lastTab =
(wxTabControl *)
NULL;
+ lastTab = NULL;
}
}
}
}
@@
-802,7
+796,8
@@
void wxTabView::Draw(wxDC& dc)
if (GetTabStyle() & wxTAB_STYLE_COLOUR_INTERIOR)
{
dc.SetPen(*wxTRANSPARENT_PEN);
if (GetTabStyle() & wxTAB_STYLE_COLOUR_INTERIOR)
{
dc.SetPen(*wxTRANSPARENT_PEN);
- dc.SetBrush(*GetBackgroundBrush());
+ if(GetBackgroundBrush())
+ dc.SetBrush(*GetBackgroundBrush());
// Add 1 because the pen is transparent. Under Motif, may be different.
dc.DrawRectangle(
// Add 1 because the pen is transparent. Under Motif, may be different.
dc.DrawRectangle(
@@
-877,16
+872,16
@@
void wxTabView::Draw(wxDC& dc)
#endif
}
#endif
}
-// Process mouse event, return
FALSE
if we didn't process it
+// Process mouse event, return
false
if we didn't process it
bool wxTabView::OnEvent(wxMouseEvent& event)
{
if (!event.LeftDown())
bool wxTabView::OnEvent(wxMouseEvent& event)
{
if (!event.LeftDown())
- return
FALSE
;
+ return
false
;
wxCoord x, y;
event.GetPosition(&x, &y);
wxCoord x, y;
event.GetPosition(&x, &y);
- wxTabControl *hitControl =
(wxTabControl *)
NULL;
+ wxTabControl *hitControl = NULL;
wxTabLayerList::compatibility_iterator node = m_layers.GetFirst();
while (node)
wxTabLayerList::compatibility_iterator node = m_layers.GetFirst();
while (node)
@@
-911,16
+906,16
@@
bool wxTabView::OnEvent(wxMouseEvent& event)
}
if (!hitControl)
}
if (!hitControl)
- return
FALSE
;
+ return
false
;
wxTabControl *currentTab = FindTabControlForId(m_tabSelection);
if (hitControl == currentTab)
wxTabControl *currentTab = FindTabControlForId(m_tabSelection);
if (hitControl == currentTab)
- return
FALSE
;
+ return
false
;
ChangeTab(hitControl);
ChangeTab(hitControl);
- return
TRUE
;
+ return
true
;
}
bool wxTabView::ChangeTab(wxTabControl *control)
}
bool wxTabView::ChangeTab(wxTabControl *control)
@@
-931,28
+926,28
@@
bool wxTabView::ChangeTab(wxTabControl *control)
oldTab = currentTab->GetId();
if (control == currentTab)
oldTab = currentTab->GetId();
if (control == currentTab)
- return
TRUE
;
+ return
true
;
if (m_layers.GetCount() == 0)
if (m_layers.GetCount() == 0)
- return
FALSE
;
+ return
false
;
if (!OnTabPreActivate(control->GetId(), oldTab))
if (!OnTabPreActivate(control->GetId(), oldTab))
- return
FALSE
;
+ return
false
;
// Move the tab to the bottom
MoveSelectionTab(control);
if (currentTab)
// Move the tab to the bottom
MoveSelectionTab(control);
if (currentTab)
- currentTab->SetSelected(
FALSE
);
+ currentTab->SetSelected(
false
);
- control->SetSelected(
TRUE
);
+ control->SetSelected(
true
);
m_tabSelection = control->GetId();
OnTabActivate(control->GetId(), oldTab);
// Leave window refresh for the implementing window
m_tabSelection = control->GetId();
OnTabActivate(control->GetId(), oldTab);
// Leave window refresh for the implementing window
- return
TRUE
;
+ return
true
;
}
// Move the selected tab to the bottom layer, if necessary,
}
// Move the selected tab to the bottom layer, if necessary,
@@
-960,7
+955,7
@@
bool wxTabView::ChangeTab(wxTabControl *control)
bool wxTabView::MoveSelectionTab(wxTabControl *control)
{
if (m_layers.GetCount() == 0)
bool wxTabView::MoveSelectionTab(wxTabControl *control)
{
if (m_layers.GetCount() == 0)
- return
FALSE
;
+ return
false
;
wxTabLayer *firstLayer = (wxTabLayer *)m_layers.GetFirst()->GetData();
wxTabLayer *firstLayer = (wxTabLayer *)m_layers.GetFirst()->GetData();
@@
-972,14
+967,14
@@
bool wxTabView::MoveSelectionTab(wxTabControl *control)
int col = 0;
wxList::compatibility_iterator thisNode = FindTabNodeAndColumn(control, &col);
if (!thisNode)
int col = 0;
wxList::compatibility_iterator thisNode = FindTabNodeAndColumn(control, &col);
if (!thisNode)
- return
FALSE
;
+ return
false
;
wxList::compatibility_iterator otherNode = firstLayer->Item(col);
if (!otherNode)
wxList::compatibility_iterator otherNode = firstLayer->Item(col);
if (!otherNode)
- return
FALSE
;
+ return
false
;
// If this is already in the bottom layer, return now
if (otherNode == thisNode)
// If this is already in the bottom layer, return now
if (otherNode == thisNode)
- return
TRUE
;
+ return
true
;
wxTabControl *otherTab = (wxTabControl *)otherNode->GetData();
wxTabControl *otherTab = (wxTabControl *)otherNode->GetData();
@@
-1003,7
+998,7
@@
bool wxTabView::MoveSelectionTab(wxTabControl *control)
thisNode->SetData(otherTab);
otherNode->SetData(control);
}
thisNode->SetData(otherTab);
otherNode->SetData(control);
}
- return
TRUE
;
+ return
true
;
}
// Called when a tab is activated
}
// Called when a tab is activated
@@
-1014,22
+1009,26
@@
void wxTabView::OnTabActivate(int /*activateId*/, int /*deactivateId*/)
void wxTabView::SetHighlightColour(const wxColour& col)
{
m_highlightColour = col;
void wxTabView::SetHighlightColour(const wxColour& col)
{
m_highlightColour = col;
- m_highlightPen = wxThePenList->FindOrCreatePen(col
, 1, wxSOLID
);
+ m_highlightPen = wxThePenList->FindOrCreatePen(col);
}
void wxTabView::SetShadowColour(const wxColour& col)
{
m_shadowColour = col;
}
void wxTabView::SetShadowColour(const wxColour& col)
{
m_shadowColour = col;
- m_shadowPen = wxThePenList->FindOrCreatePen(col
, 1, wxSOLID
);
+ m_shadowPen = wxThePenList->FindOrCreatePen(col);
}
void wxTabView::SetBackgroundColour(const wxColour& col)
{
m_backgroundColour = col;
}
void wxTabView::SetBackgroundColour(const wxColour& col)
{
m_backgroundColour = col;
- m_backgroundPen = wxThePenList->FindOrCreatePen(col
, 1, wxSOLID
);
- m_backgroundBrush = wxTheBrushList->FindOrCreateBrush(col
, wxSOLID
);
+ m_backgroundPen = wxThePenList->FindOrCreatePen(col);
+ m_backgroundBrush = wxTheBrushList->FindOrCreateBrush(col);
}
}
+// this may be called with sel = zero (which doesn't match any page)
+// when wxMotif deletes a page
+// so return the first tab...
+
void wxTabView::SetTabSelection(int sel, bool activateTool)
{
if ( sel==m_tabSelection )
void wxTabView::SetTabSelection(int sel, bool activateTool)
{
if ( sel==m_tabSelection )
@@
-1037,6
+1036,7
@@
void wxTabView::SetTabSelection(int sel, bool activateTool)
int oldSel = m_tabSelection;
wxTabControl *control = FindTabControlForId(sel);
int oldSel = m_tabSelection;
wxTabControl *control = FindTabControlForId(sel);
+ if (sel == 0) sel=control->GetId();
wxTabControl *oldControl = FindTabControlForId(m_tabSelection);
if (!OnTabPreActivate(sel, oldSel))
wxTabControl *oldControl = FindTabControlForId(m_tabSelection);
if (!OnTabPreActivate(sel, oldSel))
@@
-1051,7
+1051,7
@@
void wxTabView::SetTabSelection(int sel, bool activateTool)
}
if (oldControl)
}
if (oldControl)
- oldControl->SetSelected(
FALSE
);
+ oldControl->SetSelected(
false
);
m_tabSelection = sel;
m_tabSelection = sel;
@@
-1063,6
+1063,8
@@
void wxTabView::SetTabSelection(int sel, bool activateTool)
}
// Find tab control for id
}
// Find tab control for id
+// this may be called with zero (which doesn't match any page)
+// so return the first control...
wxTabControl *wxTabView::FindTabControlForId(int id) const
{
wxTabLayerList::compatibility_iterator node1 = m_layers.GetFirst();
wxTabControl *wxTabView::FindTabControlForId(int id) const
{
wxTabLayerList::compatibility_iterator node1 = m_layers.GetFirst();
@@
-1073,13
+1075,13
@@
wxTabControl *wxTabView::FindTabControlForId(int id) const
while (node2)
{
wxTabControl *control = (wxTabControl *)node2->GetData();
while (node2)
{
wxTabControl *control = (wxTabControl *)node2->GetData();
- if (control->GetId() == id)
+ if (control->GetId() == id
|| id == 0
)
return control;
node2 = node2->GetNext();
}
node1 = node1->GetNext();
}
return control;
node2 = node2->GetNext();
}
node1 = node1->GetNext();
}
- return
(wxTabControl *)
NULL;
+ return NULL;
}
// Find tab control for layer, position (starting from zero)
}
// Find tab control for layer, position (starting from zero)
@@
-1087,11
+1089,11
@@
wxTabControl *wxTabView::FindTabControlForPosition(int layer, int position) cons
{
wxTabLayerList::compatibility_iterator node1 = m_layers.Item(layer);
if (!node1)
{
wxTabLayerList::compatibility_iterator node1 = m_layers.Item(layer);
if (!node1)
- return
(wxTabControl *)
NULL;
+ return NULL;
wxTabLayer *tabLayer = (wxTabLayer *)node1->GetData();
wxList::compatibility_iterator node2 = tabLayer->Item(position);
if (!node2)
wxTabLayer *tabLayer = (wxTabLayer *)node1->GetData();
wxList::compatibility_iterator node2 = tabLayer->Item(position);
if (!node2)
- return
(wxTabControl *)
NULL;
+ return NULL;
return (wxTabControl *)node2->GetData();
}
return (wxTabControl *)node2->GetData();
}
@@
-1148,7
+1150,7
@@
wxTabbedDialog::wxTabbedDialog(wxWindow *parent, wxWindowID id,
long windowStyle, const wxString& name):
wxDialog(parent, id, title, pos, size, windowStyle, name)
{
long windowStyle, const wxString& name):
wxDialog(parent, id, title, pos, size, windowStyle, name)
{
- m_tabView =
(wxTabView *)
NULL;
+ m_tabView = NULL;
}
wxTabbedDialog::~wxTabbedDialog(void)
}
wxTabbedDialog::~wxTabbedDialog(void)
@@
-1190,7
+1192,7
@@
wxTabbedPanel::wxTabbedPanel(wxWindow *parent, wxWindowID id, const wxPoint& pos
const wxSize& size, long windowStyle, const wxString& name):
wxPanel(parent, id, pos, size, windowStyle, name)
{
const wxSize& size, long windowStyle, const wxString& name):
wxPanel(parent, id, pos, size, windowStyle, name)
{
- m_tabView =
(wxTabView *)
NULL;
+ m_tabView = NULL;
}
wxTabbedPanel::~wxTabbedPanel(void)
}
wxTabbedPanel::~wxTabbedPanel(void)
@@
-1221,7
+1223,7
@@
wxPanelTabView::wxPanelTabView(wxPanel *pan, long style)
: wxTabView(style)
{
m_panel = pan;
: wxTabView(style)
{
m_panel = pan;
- m_currentWindow =
(wxWindow *)
NULL;
+ m_currentWindow = NULL;
if (m_panel->IsKindOf(CLASSINFO(wxTabbedDialog)))
((wxTabbedDialog *)m_panel)->SetTabView(this);
if (m_panel->IsKindOf(CLASSINFO(wxTabbedDialog)))
((wxTabbedDialog *)m_panel)->SetTabView(this);
@@
-1233,7
+1235,7
@@
wxPanelTabView::wxPanelTabView(wxPanel *pan, long style)
wxPanelTabView::~wxPanelTabView(void)
{
wxPanelTabView::~wxPanelTabView(void)
{
- ClearWindows(
TRUE
);
+ ClearWindows(
true
);
}
// Called when a tab is activated
}
// Called when a tab is activated
@@
-1246,9
+1248,9
@@
void wxPanelTabView::OnTabActivate(int activateId, int deactivateId)
wxWindow *newWindow = GetTabWindow(activateId);
if (oldWindow)
wxWindow *newWindow = GetTabWindow(activateId);
if (oldWindow)
- oldWindow->Show(
FALSE
);
+ oldWindow->Show(
false
);
if (newWindow)
if (newWindow)
- newWindow->Show(
TRUE
);
+ newWindow->Show(
true
);
m_panel->Refresh();
}
m_panel->Refresh();
}
@@
-1258,7
+1260,7
@@
void wxPanelTabView::AddTabWindow(int id, wxWindow *window)
{
wxASSERT(m_tabWindows.find(id) == m_tabWindows.end());
m_tabWindows[id] = window;
{
wxASSERT(m_tabWindows.find(id) == m_tabWindows.end());
m_tabWindows[id] = window;
- window->Show(
FALSE
);
+ window->Show(
false
);
}
wxWindow *wxPanelTabView::GetTabWindow(int id) const
}
wxWindow *wxPanelTabView::GetTabWindow(int id) const
@@
-1280,9
+1282,8
@@
void wxPanelTabView::ShowWindowForTab(int id)
if (newWindow == m_currentWindow)
return;
if (m_currentWindow)
if (newWindow == m_currentWindow)
return;
if (m_currentWindow)
- m_currentWindow->Show(
FALSE
);
- newWindow->Show(
TRUE
);
+ m_currentWindow->Show(
false
);
+ newWindow->Show(
true
);
newWindow->Refresh();
}
newWindow->Refresh();
}
-#endif // wxUSE_TAB_DIALOG