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
virtual void SetLabel(const wxString& label)
{ wxWindowBase::SetLabel(label); }
{ wxWindow::SetLabel(label); }
#endif // WXWIN_COMPATIBILITY_2_6
protected:

View File

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

View File

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

View File

@@ -154,13 +154,16 @@ public:
// return true if the frame is in fullscreen mode
virtual bool IsFullScreen() const = 0;
/*
for now we already have them in wxWindow, but this is wrong: these
methods really only make sense for wxTopLevelWindow!
#ifdef __WXMSW__
// FIXME: This is work in progress about moving SetTitle/GetTitle from wxWindow
// 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 wxString GetTitle() const = 0;
*/
#endif
// Set the shape of the window to the given region.
// Returns true if the platform supports this feature (and the

View File

@@ -168,12 +168,11 @@ public:
// window attributes
// -----------------
// NB: in future versions of wxWidgets Set/GetTitle() will only work
// with the top level windows (such as dialogs and frames) and
// Set/GetLabel() only with the other ones (i.e. all controls).
#ifndef __WXMSW__
// FIXME: This is work in progress about moving SetTitle/GetTitle from wxWindow
// 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 wxString GetTitle() const { return wxEmptyString; }
@@ -181,6 +180,12 @@ public:
// makes more sense to speak about labels)
virtual void SetLabel(const wxString& label) { SetTitle(label); }
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
// same as the window title/label
@@ -1536,6 +1541,4 @@ public:
#endif // wxUSE_ACCESSIBILITY
#endif
// _WX_WINDOW_H_BASE_
#endif // _WX_WINDOW_H_BASE_

View File

@@ -656,14 +656,18 @@ void wxView::OnUpdate(wxView *WXUNUSED(sender), wxObject *WXUNUSED(hint))
void wxView::OnChangeFilename()
{
if (GetFrame() && GetDocument())
{
wxString title;
// GetFrame can return wxWindow rather than wxTopLevelWindow due to
// generic MDI implementation so use SetLabel rather than SetTitle.
// 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)
@@ -2441,4 +2445,3 @@ bool wxTransferStreamToFile(wxInputStream& stream, const wxString& filename)
#endif // wxUSE_STD_IOSTREAM/!wxUSE_STD_IOSTREAM
#endif // wxUSE_DOC_VIEW_ARCHITECTURE

View File

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

View File

@@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////////////
// Name: msw/toplevel.cpp
// Name: src/msw/toplevel.cpp
// Purpose: implements wxTopLevelWindow for MSW
// Author: Vadim Zeitlin
// Modified by:
@@ -813,6 +813,16 @@ bool wxTopLevelWindowMSW::ShowFullScreen(bool show, long style)
// wxTopLevelWindowMSW misc
// ----------------------------------------------------------------------------
void wxTopLevelWindowMSW::SetTitle( const wxString& title)
{
SetLabel(title);
}
wxString wxTopLevelWindowMSW::GetTitle() const
{
return GetLabel();
}
void wxTopLevelWindowMSW::SetIcon(const wxIcon& icon)
{
SetIcons( wxIconBundle( icon ) );
@@ -1140,5 +1150,3 @@ HWND wxTLWHiddenParentModule::GetHWND()
return ms_hwnd;
}

View File

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