Advertisement
bhattigurjot

gtk_widget_problem

Jul 18th, 2014
278
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.22 KB | None | 0 0
  1. ~~~~~~~~~~~~~~
  2. myclass.h
  3. ~~~~~~~~~~~~~~
  4. #include <gtk/gtk.h>
  5. #include "DrawingArea.h"
  6.  
  7. class myclass
  8. {
  9.     public:
  10.         myclass();
  11.         virtual ~myclass();
  12.         void newTab();
  13.  
  14.     protected:
  15.         GtkWidget *mainWindow;
  16.         GtkBox *box;
  17.         GtkNotebook *View;
  18.         GtkWidget *drawArea;
  19.             GtkWidget *label;
  20.         DrawingArea *drawpointer;
  21.  
  22.         bool checkFlag;
  23.         int cPage; 
  24. };
  25.  
  26. extern "C"
  27. {
  28.     void on_new(GtkWidget *widget, gpointer user_data);
  29. }
  30.  
  31.  
  32. ~~~~~~~~~~~~~~
  33. myclass.cpp
  34. ~~~~~~~~~~~~~~
  35. #include "myclass.h"
  36. #include <iostream>
  37.  
  38. extern myclass *pointer;
  39.  
  40. myclass:: myclass()
  41. {      
  42. GtkBuilder *builder = gtk_builder_new();
  43. gtk_builder_add_from_file (builder, "uifile.ui", NULL);
  44. gtk_builder_connect_signals (builder, NULL);
  45. mainWindow = GTK_WIDGET (gtk_builder_get_object(builder, "mainWindow"));
  46. box = GTK_BOX (gtk_builder_get_object(builder, "box1"));
  47. gtk_widget_show_all (mainWindow);
  48. }
  49.  
  50. myclass::~myclass()
  51. {
  52. }
  53.  
  54. void on_new(GtkWidget *widget, gpointer user_data)
  55. {
  56. pointer->newTab();
  57. }
  58.  
  59. void myclass:: newTab()
  60. {
  61. if(!checkFlag)
  62. {
  63.     drawpointer = new DrawingArea();
  64.     drawArea = drawpointer->createArea();
  65.     View = GTK_NOTEBOOK(gtk_notebook_new());
  66.     gtk_notebook_set_tab_pos (View, GTK_POS_TOP);
  67.     label = gtk_label_new ("Document");
  68.     gtk_notebook_append_page (View, drawArea, label);
  69.     gtk_box_pack_start(box, GTK_WIDGET(View), TRUE, TRUE, 0);
  70.     gtk_box_reorder_child (box, GTK_WIDGET(View), 1);
  71.     gtk_widget_show (GTK_WIDGET(View));
  72.     checkFlag = true;
  73.   }
  74.     label = gtk_label_new ("Document1");
  75.     cPage = gtk_notebook_get_current_page (View);
  76.     gtk_notebook_insert_page (View, drawArea, label, cPage + 1);
  77.     gtk_notebook_next_page (GTK_NOTEBOOK (View));  
  78. }
  79.  
  80. ~~~~~~~~~~~~~~
  81. DrawingArea.h
  82. ~~~~~~~~~~~~~~
  83. #include <gtk/gtk.h>
  84.  
  85. class DrawingArea
  86. {
  87.     public:
  88.         DrawingArea();
  89.         virtual ~DrawingArea();
  90.  
  91.         GtkWidget *drawingArea;
  92.         GtkWidget *createArea();
  93. };
  94.  
  95.  
  96. ~~~~~~~~~~~~~~
  97. DrawingArea.cpp
  98. ~~~~~~~~~~~~~~
  99.  
  100. #include "DrawingArea.h"
  101.  
  102. DrawingArea:: DrawingArea()
  103. {
  104. }
  105.  
  106. DrawingArea:: ~DrawingArea()
  107. {
  108. }
  109.  
  110. GtkWidget* DrawingArea::createArea()
  111. {
  112.     drawingArea = gtk_drawing_area_new();
  113.     gtk_widget_show (drawingArea);
  114.     return drawingArea;
  115. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement