X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/42e69d6b435a4dd5415caf3750db62cf45b6f373..dd9f8b6bb6935360a8271dc3e8749fb026b601a8:/src/msw/tabctrl.cpp?ds=sidebyside diff --git a/src/msw/tabctrl.cpp b/src/msw/tabctrl.cpp index 20f1d669f1..ddb0255c42 100644 --- a/src/msw/tabctrl.cpp +++ b/src/msw/tabctrl.cpp @@ -1,60 +1,43 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: tabctrl.cpp +// Name: src/msw/tabctrl.cpp // Purpose: wxTabCtrl // Author: Julian Smart // Modified by: // Created: 04/01/98 // RCS-ID: $Id$ // Copyright: (c) Julian Smart -// Licence: wxWindows license +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ -#pragma implementation "tabctrl.h" -#endif - // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" #ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/wx.h" -#endif - -#if defined(__WIN95__) - -#if !defined(__GNUWIN32__) && !defined(__SALFORDC__) -#include "malloc.h" + #pragma hdrstop #endif -#include - -#if (defined(__WIN95__) && !defined(__GNUWIN32__)) || defined(__TWIN32__) -#include -#endif +#if wxUSE_TAB_DIALOG -#ifndef __TWIN32__ -#ifdef __GNUWIN32__ -#include "wx/msw/gnuwin32/extra.h" -#endif +#ifndef WX_PRECOMP + #include "wx/msw/wrapcctl.h" // include "properly" + #include "wx/wx.h" + #include "wx/app.h" #endif -#include "wx/msw/dib.h" -#include "wx/msw/tabctrl.h" -#include "wx/app.h" #include "wx/msw/private.h" + +#include "wx/tabctrl.h" #include "wx/msw/imaglist.h" -#if !USE_SHARED_LIBRARY IMPLEMENT_DYNAMIC_CLASS(wxTabCtrl, wxControl) +IMPLEMENT_DYNAMIC_CLASS(wxTabEvent, wxNotifyEvent) + +DEFINE_EVENT_TYPE(wxEVT_COMMAND_TAB_SEL_CHANGED) +DEFINE_EVENT_TYPE(wxEVT_COMMAND_TAB_SEL_CHANGING) BEGIN_EVENT_TABLE(wxTabCtrl, wxControl) EVT_SYS_COLOUR_CHANGED(wxTabCtrl::OnSysColourChanged) END_EVENT_TABLE() -#endif wxTabCtrl::wxTabCtrl() { @@ -79,15 +62,8 @@ bool wxTabCtrl::Create(wxWindow *parent, wxWindowID id, const wxPoint& pos, cons m_windowStyle = style; - SetFont(* (wxTheFontList->FindOrCreateFont(11, wxSWISS, wxNORMAL, wxNORMAL))); - SetParent(parent); - DWORD msflags = 0; - if (style & wxBORDER) - msflags |= WS_BORDER; - msflags |= WS_CHILD | WS_VISIBLE; - if (width <= 0) width = 100; if (height <= 0) @@ -99,7 +75,7 @@ bool wxTabCtrl::Create(wxWindow *parent, wxWindowID id, const wxPoint& pos, cons m_windowId = (id < 0 ? NewControlId() : id); - long tabStyle = 0; + long tabStyle = WS_CHILD | WS_VISIBLE; if (m_windowStyle & wxTC_MULTILINE) tabStyle |= TCS_MULTILINE; if (m_windowStyle & wxTC_RIGHTJUSTIFY) @@ -108,26 +84,32 @@ bool wxTabCtrl::Create(wxWindow *parent, wxWindowID id, const wxPoint& pos, cons tabStyle |= TCS_FIXEDWIDTH; if (m_windowStyle & wxTC_OWNERDRAW) tabStyle |= TCS_OWNERDRAWFIXED; + if (m_windowStyle & wxBORDER) + tabStyle |= WS_BORDER; +#ifndef __WXWINCE__ tabStyle |= TCS_TOOLTIPS; +#endif // Create the toolbar control. HWND hWndTabCtrl = CreateWindowEx(0L, // No extended styles. WC_TABCONTROL, // Class name for the tab control - "", // No default text. - WS_CHILD | WS_BORDER | WS_VISIBLE | tabStyle, // Styles and defaults. + wxEmptyString, // No default text. + tabStyle, // Styles and defaults. x, y, width, height, // Standard size and position. (HWND) parent->GetHWND(), // Parent window - (HMENU)m_windowId, // ID. + (HMENU)m_windowId.GetValue(), // ID. wxGetInstance(), // Current instance. NULL ); // No class data. m_hWnd = (WXHWND) hWndTabCtrl; if (parent) parent->AddChild(this); - + SubclassWin((WXHWND) hWndTabCtrl); - return TRUE; + SetFont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT)); + + return true; } wxTabCtrl::~wxTabCtrl() @@ -138,7 +120,7 @@ wxTabCtrl::~wxTabCtrl() bool wxTabCtrl::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result) { wxTabEvent event(wxEVT_NULL, m_windowId); - wxEventType eventType = wxEVT_NULL; + wxEventType eventType wxDUMMY_INITIALIZE(wxEVT_NULL); NMHDR* hdr1 = (NMHDR*) lParam; switch ( hdr1->code ) { @@ -150,13 +132,14 @@ bool wxTabCtrl::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result) eventType = wxEVT_COMMAND_TAB_SEL_CHANGING; break; +#ifndef __WXWINCE__ case TTN_NEEDTEXT: { // TODO -// if (tool->m_shortHelpString != "") +// if (!tool->m_shortHelpString.empty()) // ttText->lpszText = (char *) (const char *)tool->m_shortHelpString; } - +#endif default : return wxControl::MSWOnNotify(idCtrl, lParam, result); } @@ -164,8 +147,9 @@ bool wxTabCtrl::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result) event.SetEventObject( this ); event.SetEventType(eventType); event.SetInt(idCtrl) ; + event.SetSelection(idCtrl); - return ProcessEvent(event); + return HandleWindowEvent(event); } // Responds to colour changes, and passes event on to children. @@ -222,13 +206,13 @@ bool wxTabCtrl::GetItemRect(int item, wxRect& wxrect) const { RECT rect; if ( !TabCtrl_GetItemRect( (HWND) GetHWND(), item, & rect) ) - return FALSE; + return false; else { wxrect.x = rect.left; wxrect.y = rect.top; wxrect.width = rect.right - rect.left; wxrect.height = rect.bottom - rect.top; - return TRUE; + return true; } } @@ -241,8 +225,8 @@ int wxTabCtrl::GetRowCount() const // Get the item text wxString wxTabCtrl::GetItemText(int item) const { - char buf[256]; - wxString str(""); + wxChar buf[256]; + wxString str(wxEmptyString); TC_ITEM tcItem; tcItem.mask = TCIF_TEXT; tcItem.pszText = buf; @@ -300,14 +284,14 @@ int wxTabCtrl::HitTest(const wxPoint& pt, long& flags) // Insert an item bool wxTabCtrl::InsertItem(int item, const wxString& text, int imageId, void* data) { - char buf[256]; + wxChar buf[256]; TC_ITEM tcItem; tcItem.mask = TCIF_PARAM; tcItem.lParam = (long) data; - if (text != "") + if (!text.empty()) { tcItem.mask |= TCIF_TEXT; - strcpy(buf, (const char*) text); + wxStrcpy(buf, (const wxChar*) text); tcItem.pszText = buf; tcItem.cchTextMax = 256; } @@ -330,16 +314,16 @@ int wxTabCtrl::SetSelection(int item) void wxTabCtrl::SetImageList(wxImageList* imageList) { m_imageList = imageList; - TabCtrl_SetImageList( (HWND) GetHWND(), (HIMAGELIST) imageList->GetHIMAGELIST() ); + (void) TabCtrl_SetImageList( (HWND) GetHWND(), (HIMAGELIST) imageList->GetHIMAGELIST() ); } // Set the text for an item bool wxTabCtrl::SetItemText(int item, const wxString& text) { - char buf[256]; + wxChar buf[256]; TC_ITEM tcItem; tcItem.mask = TCIF_TEXT; - strcpy(buf, (const char*) text); + wxStrcpy(buf, (const wxChar*) text); tcItem.pszText = buf; tcItem.cchTextMax = 256; @@ -445,14 +429,4 @@ void wxMapBitmap(HBITMAP hBitmap, int width, int height) } #endif -// Tab event -IMPLEMENT_DYNAMIC_CLASS(wxTabEvent, wxCommandEvent) - -wxTabEvent::wxTabEvent(wxEventType commandType, int id): - wxCommandEvent(commandType, id) -{ -} - - -#endif - // __WIN95__ +#endif // wxUSE_TAB_DIALOG