Get/SetTitle only for wxTopLevelWindow (wxMSW part).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@36075 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Włodzimierz Skiba
2005-11-03 16:47:29 +00:00
parent 60fef9643d
commit faa49bfd39
9 changed files with 69 additions and 49 deletions

View File

@@ -70,7 +70,7 @@ public:
// prevent virtual function hiding // prevent virtual function hiding
virtual void SetLabel(const wxString& label) virtual void SetLabel(const wxString& label)
{ wxWindowBase::SetLabel(label); } { wxWindow::SetLabel(label); }
#endif // WXWIN_COMPATIBILITY_2_6 #endif // WXWIN_COMPATIBILITY_2_6
protected: protected:

View File

@@ -46,6 +46,8 @@ public:
virtual ~wxTopLevelWindowMSW(); virtual ~wxTopLevelWindowMSW();
// implement base class pure virtuals // implement base class pure virtuals
virtual void SetTitle( const wxString& title);
virtual wxString GetTitle() const;
virtual void Maximize(bool maximize = true); virtual void Maximize(bool maximize = true);
virtual bool IsMaximized() const; virtual bool IsMaximized() const;
virtual void Iconize(bool iconize = true); virtual void Iconize(bool iconize = true);
@@ -166,4 +168,3 @@ protected:
}; };
#endif // _WX_MSW_TOPLEVEL_H_ #endif // _WX_MSW_TOPLEVEL_H_

View File

@@ -1,6 +1,6 @@
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// Name: wx/msw/window.h // Name: wx/msw/window.h
// Purpose: wxWindow class // Purpose: wxWindowMSW class
// Author: Julian Smart // Author: Julian Smart
// Modified by: Vadim Zeitlin on 13.05.99: complete refont of message handling, // Modified by: Vadim Zeitlin on 13.05.99: complete refont of message handling,
// elimination of Default(), ... // elimination of Default(), ...
@@ -62,8 +62,8 @@ public:
const wxString& name = wxPanelNameStr); const wxString& name = wxPanelNameStr);
// implement base class pure virtuals // implement base class pure virtuals
virtual void SetTitle( const wxString& title); virtual void SetLabel(const wxString& label);
virtual wxString GetTitle() const; virtual wxString GetLabel() const;
virtual void Raise(); virtual void Raise();
virtual void Lower(); virtual void Lower();
@@ -557,5 +557,4 @@ WX_DECLARE_HASH(wxWindowMSW, wxWindowList, wxWinHashTable);
extern wxWinHashTable *wxWinHandleHash; extern wxWinHashTable *wxWinHandleHash;
#endif #endif // _WX_WINDOW_H_
// _WX_WINDOW_H_

View File

@@ -154,13 +154,16 @@ public:
// return true if the frame is in fullscreen mode // return true if the frame is in fullscreen mode
virtual bool IsFullScreen() const = 0; virtual bool IsFullScreen() const = 0;
/* #ifdef __WXMSW__
for now we already have them in wxWindow, but this is wrong: these // FIXME: This is work in progress about moving SetTitle/GetTitle from wxWindow
methods really only make sense for wxTopLevelWindow! // to wxTopLevelWindow so initially enabled in wxMSW only to observe results
// and continue on other platforms
// the title (or label, see below) of the window: the text which the
// window shows
virtual void SetTitle(const wxString& title) = 0; virtual void SetTitle(const wxString& title) = 0;
virtual wxString GetTitle() const = 0; virtual wxString GetTitle() const = 0;
*/ #endif
// Set the shape of the window to the given region. // Set the shape of the window to the given region.
// Returns true if the platform supports this feature (and the // Returns true if the platform supports this feature (and the

View File

@@ -168,19 +168,24 @@ public:
// window attributes // window attributes
// ----------------- // -----------------
// NB: in future versions of wxWidgets Set/GetTitle() will only work #ifndef __WXMSW__
// with the top level windows (such as dialogs and frames) and // FIXME: This is work in progress about moving SetTitle/GetTitle from wxWindow
// Set/GetLabel() only with the other ones (i.e. all controls). // to wxTopLevelWindow so initially enabled in wxMSW only to observe results
// and continue on other platforms
// the title (or label, see below) of the window: the text which the
// window shows
virtual void SetTitle( const wxString& WXUNUSED(title) ) {} virtual void SetTitle( const wxString& WXUNUSED(title) ) {}
virtual wxString GetTitle() const { return wxEmptyString; } virtual wxString GetTitle() const { return wxEmptyString; }
// label is just the same as the title (but for, e.g., buttons it // label is just the same as the title (but for, e.g., buttons it
// makes more sense to speak about labels) // makes more sense to speak about labels)
virtual void SetLabel(const wxString& label) { SetTitle(label); } virtual void SetLabel(const wxString& label) { SetTitle(label); }
virtual wxString GetLabel() const { return GetTitle(); } virtual wxString GetLabel() const { return GetTitle(); }
#else
// label is just the same as the title (but for, e.g., buttons it
// makes more sense to speak about labels)
virtual void SetLabel(const wxString& label) = 0;
virtual wxString GetLabel() const = 0;
#endif
// the window name is used for ressource setting in X, it is not the // the window name is used for ressource setting in X, it is not the
// same as the window title/label // same as the window title/label
@@ -1536,6 +1541,4 @@ public:
#endif // wxUSE_ACCESSIBILITY #endif // wxUSE_ACCESSIBILITY
#endif #endif // _WX_WINDOW_H_BASE_
// _WX_WINDOW_H_BASE_

View File

@@ -656,14 +656,18 @@ void wxView::OnUpdate(wxView *WXUNUSED(sender), wxObject *WXUNUSED(hint))
void wxView::OnChangeFilename() void wxView::OnChangeFilename()
{ {
if (GetFrame() && GetDocument()) // GetFrame can return wxWindow rather than wxTopLevelWindow due to
{ // generic MDI implementation so use SetLabel rather than SetTitle.
wxString title; // It should cause SetTitle() for top level windows.
wxWindow *win = GetFrame();
if (!win) return;
GetDocument()->GetPrintableName(title); wxDocument *doc = GetDocument();
if (!doc) return;
GetFrame()->SetTitle(title); wxString name;
} doc->GetPrintableName(name);
win->SetLabel(name);
} }
void wxView::SetDocument(wxDocument *doc) void wxView::SetDocument(wxDocument *doc)
@@ -2441,4 +2445,3 @@ bool wxTransferStreamToFile(wxInputStream& stream, const wxString& filename)
#endif // wxUSE_STD_IOSTREAM/!wxUSE_STD_IOSTREAM #endif // wxUSE_STD_IOSTREAM/!wxUSE_STD_IOSTREAM
#endif // wxUSE_DOC_VIEW_ARCHITECTURE #endif // wxUSE_DOC_VIEW_ARCHITECTURE

View File

@@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// Name: msw/radiobox.cpp // Name: src/msw/radiobox.cpp
// Purpose: wxRadioBox implementation // Purpose: wxRadioBox implementation
// Author: Julian Smart // Author: Julian Smart
// Modified by: // Modified by:
@@ -484,7 +484,7 @@ wxSize wxRadioBox::GetTotalButtonSize(const wxSize& sizeBtn) const
// and also wide enough for its label // and also wide enough for its label
int widthLabel; int widthLabel;
GetTextExtent(GetTitle(), &widthLabel, NULL); GetTextExtent(GetLabel(), &widthLabel, NULL);
widthLabel += RADIO_SIZE; // FIXME this is bogus too widthLabel += RADIO_SIZE; // FIXME this is bogus too
if ( widthLabel > width ) if ( widthLabel > width )
width = widthLabel; width = widthLabel;
@@ -862,4 +862,3 @@ LRESULT APIENTRY _EXPORT wxRadioBtnWndProc(HWND hwnd,
} }
#endif // wxUSE_RADIOBOX #endif // wxUSE_RADIOBOX

View File

@@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
// Name: msw/toplevel.cpp // Name: src/msw/toplevel.cpp
// Purpose: implements wxTopLevelWindow for MSW // Purpose: implements wxTopLevelWindow for MSW
// Author: Vadim Zeitlin // Author: Vadim Zeitlin
// Modified by: // Modified by:
@@ -205,7 +205,7 @@ WXDWORD wxTopLevelWindowMSW::MSWGetStyle(long style, WXDWORD *exflags) const
if ( style & wxMAXIMIZE_BOX ) if ( style & wxMAXIMIZE_BOX )
msflags |= WS_MAXIMIZEBOX; msflags |= WS_MAXIMIZEBOX;
#ifndef __WXWINCE__ #ifndef __WXWINCE__
if ( style & wxSYSTEM_MENU ) if ( style & wxSYSTEM_MENU )
msflags |= WS_SYSMENU; msflags |= WS_SYSMENU;
#endif #endif
@@ -414,11 +414,11 @@ bool wxTopLevelWindowMSW::CreateDialog(const void *dlgTemplate,
} }
SubclassWin(m_hWnd); SubclassWin(m_hWnd);
#ifdef __SMARTPHONE__ #ifdef __SMARTPHONE__
// Work around title non-display glitch // Work around title non-display glitch
Show(false); Show(false);
#endif #endif
return true; return true;
#endif // __WXMICROWIN__/!__WXMICROWIN__ #endif // __WXMICROWIN__/!__WXMICROWIN__
@@ -813,6 +813,16 @@ bool wxTopLevelWindowMSW::ShowFullScreen(bool show, long style)
// wxTopLevelWindowMSW misc // wxTopLevelWindowMSW misc
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
void wxTopLevelWindowMSW::SetTitle( const wxString& title)
{
SetLabel(title);
}
wxString wxTopLevelWindowMSW::GetTitle() const
{
return GetLabel();
}
void wxTopLevelWindowMSW::SetIcon(const wxIcon& icon) void wxTopLevelWindowMSW::SetIcon(const wxIcon& icon)
{ {
SetIcons( wxIconBundle( icon ) ); SetIcons( wxIconBundle( icon ) );
@@ -1140,5 +1150,3 @@ HWND wxTLWHiddenParentModule::GetHWND()
return ms_hwnd; return ms_hwnd;
} }

View File

@@ -1,6 +1,6 @@
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// Name: src/msw/windows.cpp // Name: src/msw/window.cpp
// Purpose: wxWindow // Purpose: wxWindowMSW
// Author: Julian Smart // Author: Julian Smart
// Modified by: VZ on 13.05.99: no more Default(), MSWOnXXX() reorganisation // Modified by: VZ on 13.05.99: no more Default(), MSWOnXXX() reorganisation
// Created: 04/01/98 // Created: 04/01/98
@@ -739,16 +739,6 @@ void wxWindowMSW::Lower()
SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE); SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
} }
void wxWindowMSW::SetTitle( const wxString& title)
{
SetWindowText(GetHwnd(), title.c_str());
}
wxString wxWindowMSW::GetTitle() const
{
return wxGetWindowText(GetHWND());
}
void wxWindowMSW::DoCaptureMouse() void wxWindowMSW::DoCaptureMouse()
{ {
HWND hWnd = GetHwnd(); HWND hWnd = GetHwnd();
@@ -3552,6 +3542,20 @@ bool wxWindowMSW::HandleKillFocus(WXHWND hwnd)
return GetEventHandler()->ProcessEvent(event); return GetEventHandler()->ProcessEvent(event);
} }
// ---------------------------------------------------------------------------
// labels
// ---------------------------------------------------------------------------
void wxWindowMSW::SetLabel( const wxString& label)
{
SetWindowText(GetHwnd(), label.c_str());
}
wxString wxWindowMSW::GetLabel() const
{
return wxGetWindowText(GetHWND());
}
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
// miscellaneous // miscellaneous
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------