X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/cd71293400b25ff967cd032b8e1998b403003890..53b28675492e387711489760dbfe08ba5086ce73:/src/gtk/tabctrl.cpp diff --git a/src/gtk/tabctrl.cpp b/src/gtk/tabctrl.cpp deleted file mode 100644 index a12cf6ca59..0000000000 --- a/src/gtk/tabctrl.cpp +++ /dev/null @@ -1,329 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: tabctrl.cpp -// Purpose: -// Author: Robert Roebling -// Created: 01/02/97 -// Id: -// Copyright: (c) 1998 Robert Roebling, Julian Smart and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "tabctrl.h" -#endif - -#include "wx/tabctrl.h" -#include "wx/utils.h" -#include "wx/imaglist.h" - -#include "wx/gtk/win_gtk.h" - -//----------------------------------------------------------------------------- -// wxTabPage -//----------------------------------------------------------------------------- - -class wxTabPage: public wxObject -{ - public: - - int m_id; - wxString m_text; - int m_image; - void *m_clientData; - GtkNotebookPage *m_page; - GtkWidget *m_wxwindow; - wxList m_children; - - wxTabPage(void) - { - m_id = -1; - m_text = ""; - m_image = -1; - m_clientData = NULL; - m_page = NULL; - m_wxwindow = NULL; - }; - -}; - -//----------------------------------------------------------------------------- -// wxTabCtrl -//----------------------------------------------------------------------------- - -BEGIN_EVENT_TABLE(wxTabCtrl, wxControl) -END_EVENT_TABLE() - -IMPLEMENT_DYNAMIC_CLASS(wxTabCtrl,wxControl) - -wxTabCtrl::wxTabCtrl(void) -{ - m_imageList = NULL; - m_pages.DeleteContents( TRUE ); -}; - -wxTabCtrl::wxTabCtrl( wxWindow *parent, const wxWindowID id, - const wxPoint& pos, const wxSize& size, - const long style, const wxString& name ) -{ - m_imageList = NULL; - m_pages.DeleteContents( TRUE ); - Create( parent, id, pos, size, style, name ); -}; - -wxTabCtrl::~wxTabCtrl(void) -{ - if (m_imageList) delete m_imageList; - DeleteAllItems(); -}; - -bool wxTabCtrl::Create(wxWindow *parent, const wxWindowID id, - const wxPoint& pos, const wxSize& size, - const long style, const wxString& name ) -{ - m_needParent = TRUE; - - PreCreation( parent, id, pos, size, style, name ); - - m_widget = gtk_notebook_new(); - - PostCreation(); - - Show( TRUE ); - - return TRUE; -}; - -int wxTabCtrl::GetSelection(void) const -{ - return gtk_notebook_current_page( GTK_NOTEBOOK(m_widget) ); -}; - -wxImageList* wxTabCtrl::GetImageList(void) const -{ - return m_imageList; -}; - -int wxTabCtrl::GetItemCount(void) const -{ - return m_pages.Number(); -}; - -bool wxTabCtrl::GetItemRect( const int WXUNUSED(item), wxRect& WXUNUSED(rect) ) const -{ - return FALSE; -}; - -int wxTabCtrl::GetRowCount(void) const -{ - return 1; -}; - -wxString wxTabCtrl::GetItemText( const int item ) const -{ - wxNode *node = m_pages.Nth( item ); - if (node) - { - wxTabPage *page = (wxTabPage*)node->Data(); - return page->m_text; - }; - return ""; -}; - -int wxTabCtrl::GetItemImage( const int item ) const -{ - wxNode *node = m_pages.Nth( item ); - if (node) - { - wxTabPage *page = (wxTabPage*)node->Data(); - return page->m_image; - }; - return -1; -}; - -void* wxTabCtrl::GetItemData( const int item ) const -{ - wxNode *node = m_pages.Nth( item ); - if (node) - { - wxTabPage *page = (wxTabPage*)node->Data(); - return page->m_clientData; - }; - return NULL; -}; - -int wxTabCtrl::SetSelection( const int item ) -{ - wxTabPage *page = NULL; - - wxNode *node = m_pages.First(); - while (node) - { - page = (wxTabPage*)node->Data(); - if (page->m_id == item) break; - page = NULL; - node = node->Next(); - }; - if (!page) return -1; - - int page_num = 0; - GList *child = GTK_NOTEBOOK(m_widget)->children; - while (child) - { - if (page->m_page == (GtkNotebookPage*)child->data) break; - page_num++; - child = child->next; - }; - - if (!child) return -1; - - gtk_notebook_set_page( GTK_NOTEBOOK(m_widget), page_num ); - - return item; -}; - -void wxTabCtrl::SetImageList( wxImageList* imageList ) -{ - m_imageList = imageList; -}; - -bool wxTabCtrl::SetItemText( const int WXUNUSED(item), const wxString& WXUNUSED(text) ) -{ - return TRUE; -}; - -bool wxTabCtrl::SetItemImage( const int WXUNUSED(item), const int WXUNUSED(image) ) -{ - return TRUE; -}; - -bool wxTabCtrl::SetItemData( const int WXUNUSED(item), void* WXUNUSED(data) ) -{ - return TRUE; -}; - -void wxTabCtrl::SetItemSize( const wxSize &WXUNUSED(size) ) -{ -}; - -void wxTabCtrl::SetPadding( const wxSize &WXUNUSED(padding) ) -{ -}; - -bool wxTabCtrl::DeleteAllItems(void) -{ - wxNode *page_node = m_pages.First(); - while (page_node) - { - wxTabPage *page = (wxTabPage*)page_node->Data(); - - wxNode *node = page->m_children.First(); - while (node) - { - wxWindow *child = (wxWindow*)node->Data(); - delete child; - - node = node->Next(); - }; - - gtk_widget_destroy( page->m_wxwindow ); - - m_pages.DeleteObject( page ); - - page_node = m_pages.First(); - }; - - return TRUE; -}; - -bool wxTabCtrl::DeleteItem( const int item ) -{ - wxTabPage *page = NULL; - - wxNode *node = m_pages.First(); - while (node) - { - page = (wxTabPage*)node->Data(); - if (page->m_id == item) break; - node = node->Next(); - }; - if (!node) return FALSE; - - node = page->m_children.First(); - while (node) - { - wxWindow *child = (wxWindow*)node->Data(); - delete child; - - node = node->Next(); - }; - - gtk_widget_destroy( page->m_wxwindow ); - - m_pages.DeleteObject( page ); - - return TRUE; -}; - -int wxTabCtrl::HitTest( const wxPoint &WXUNUSED(pt), long &WXUNUSED(flags) ) -{ - return wxTAB_HITTEST_NOWHERE; -}; - -int wxTabCtrl::InsertItem( const int item, const wxString &text, const int imageId, void* data ) -{ - wxTabPage *page = new wxTabPage; - - page->m_text = text; - if (page->m_text.IsNull()) page->m_text = ""; - page->m_id = item; - page->m_image = imageId; - page->m_clientData = data; - - GtkWidget *label_widget = gtk_label_new( page->m_text ); - gtk_misc_set_alignment( GTK_MISC(label_widget), 0.0, 0.5 ); - - page->m_wxwindow = gtk_myfixed_new(); - gtk_widget_show( page->m_wxwindow ); - gtk_widget_set_usize( page->m_wxwindow, 100, 100 ); - - gtk_notebook_append_page( GTK_NOTEBOOK(m_widget), page->m_wxwindow, label_widget ); - - page->m_page = GTK_NOTEBOOK(m_widget)->cur_page; - - m_pages.Append( page ); - - return item; -}; - -void wxTabCtrl::AddChild( wxWindow *win ) -{ - GtkNotebookPage *g_page = GTK_NOTEBOOK(m_widget)->cur_page; - - wxTabPage *page = NULL; - - wxNode *node = m_pages.First(); - while (node) - { - page = (wxTabPage*)node->Data(); - if (page->m_page == g_page) break; - node = node->Next(); - }; - - if (!page) wxFatalError( "wxTabCtrl error" ); - - gtk_myfixed_put( GTK_MYFIXED(page->m_wxwindow), win->m_widget, win->m_x, win->m_y ); - gtk_widget_set_usize( win->m_widget, win->m_width, win->m_height ); - - page->m_children.Append( win ); -}; - -//----------------------------------------------------------------------------- -// wxTabEvent -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxTabEvent, wxCommandEvent) - -wxTabEvent::wxTabEvent( WXTYPE commandType, int id ) : - wxCommandEvent(commandType, id) -{ -}; \ No newline at end of file