File: main.cc

package info (click to toggle)
gtkmm2.4 1%3A2.24.5-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 149,096 kB
  • ctags: 20,365
  • sloc: xml: 80,438; cpp: 6,880; sh: 4,126; perl: 236; makefile: 228
file content (65 lines) | stat: -rw-r--r-- 1,307 bytes parent folder | download | duplicates (11)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include <gtkmm.h>
#include <gtk/gtk.h>
#include <stdio.h>

void on_viewport_destroyed(GtkWidget* widget, gpointer)
{
  GTK_VIEWPORT(widget);
  g_warning("viewport destroyed");
}

void on_gtklabel_destroyed(GtkWidget*, gpointer)
{
  g_warning("gtklabel destroyed");
}


class DerivedLabel : public Gtk::Label
{
public:
  DerivedLabel() {}
  virtual ~DerivedLabel() { printf("~DerivedLabel\n");}
};

class DerivedScrolledWindow : public Gtk::ScrolledWindow
{
public:
  DerivedScrolledWindow() {}
  virtual ~DerivedScrolledWindow() { printf("~DerivedScrolledWindow\n");}
};

class Instance
{
public:
  Instance()
  {
    //m_pLabel = new DerivedLabel();
    m_ScrolledWindow.add( m_pLabel );

    g_signal_connect (G_OBJECT(m_ScrolledWindow.get_child()->gobj()), "destroy", G_CALLBACK(on_viewport_destroyed), NULL);

   g_signal_connect (G_OBJECT(m_pLabel.gobj()), "destroy", G_CALLBACK(on_gtklabel_destroyed), NULL);
    
  }
 
  virtual ~Instance()
  {
    printf("~Instance() 1\n");
    //m_ScrolledWindow.remove(); //Removes m_pLabel;
    printf("~Instance() 2\n");
    //delete m_pLabel;
    printf("~Instance() 3\n");
  }

protected:
  DerivedLabel m_pLabel;
  DerivedScrolledWindow m_ScrolledWindow;
};

int main ( int argc, char *argv[] ) {
  
  Gtk::Main main( argc, argv );

  Instance instance;

}