Advertisement
Guest User

Gtkmm

a guest
Feb 23rd, 2013
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.22 KB | None | 0 0
  1. /*
  2.  * main.cpp
  3.  *
  4.  *  Created on: 16.02.2013
  5.  *      Author: tomislav
  6.  */
  7.  
  8. #include <iostream>
  9. #include "mainwindow.hpp"
  10. #include "overview.hpp"
  11. using namespace std;
  12. using namespace Gtk;
  13.  
  14. int main(int argc, char* argv[]) {
  15.     Main mainApplication(argc, argv);
  16.     try {
  17.                Glib::RefPtr<Gtk::Builder> refXml =
  18.                         Gtk::Builder::create_from_file("/home/tomislav/Development/sandbox/mainmenu/Main_Menu.glade");
  19.                 Glib::RefPtr<Gtk::Builder> guiOverview =
  20.                         Gtk::Builder::create_from_file("/home/tomislav/Development/sandbox/mainmenu/Overview.glade");
  21.  
  22.                 MainWindow* mainWindow =0;
  23.                 Overview* wndOverview = 0;
  24.  
  25.                 refXml->get_widget_derived("MainWindow", mainWindow);
  26.                 guiOverview->get_widget_derived("wndOverview",wndOverview);
  27.  
  28.  
  29.                
  30.                 if(mainWindow)
  31.                     mainApplication.run(*mainWindow);
  32.                 else {
  33.                    
  34.                     cout<<"Hauptfenster konnte nicht geladen werden!"<<endl;
  35.                     return 1;
  36.                 }
  37.            
  38.             } catch(Gtk::BuilderError::Error& xmlError) {
  39.                 cout<<xmlError.what()<<endl;
  40.                 cin.get();
  41.                 return 1;
  42.             }
  43.     return 0;
  44. }
  45.  
  46.  
  47.  
  48. /*
  49.  * mainwindow.hpp
  50.  *
  51.  *  Created on: 16.02.2013
  52.  *      Author: tomislav
  53.  */
  54.  
  55. #ifndef mainwindowHPP
  56. #define mainwindowHPP
  57. #include <gtkmm.h>
  58. #include <string>
  59. using namespace std;
  60.  
  61. class MainWindow : public Gtk::Window {
  62.     private:
  63.         //zugriff auf glade-datei
  64.         Glib::RefPtr<Gtk::Builder> &refXml;
  65.  
  66.         //der button zum beenden der anwendung
  67.         Gtk::Toolbar*       toobMainmenu;
  68.         Gtk::ToolButton*    tbtnOverview;
  69.         Gtk::ToolButton*    tbtnBeenden;
  70.     public:
  71.         MainWindow(GtkWindow* base, Glib::RefPtr<Gtk::Builder> &refXml);
  72.  
  73.         //beendet die Anwendung
  74.         virtual void cmdBeenden() {
  75.             hide();
  76.         }
  77.  
  78.  
  79. };
  80.  
  81. #endif
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88. /*
  89.  * mainwindow.cpp
  90.  *
  91.  *  Created on: 16.02.2013
  92.  *      Author: tomislav
  93.  */
  94.  
  95. #include "mainwindow.hpp"
  96. using namespace Gtk;
  97.  
  98. MainWindow::MainWindow(GtkWindow* base, Glib::RefPtr<Gtk::Builder> &refXml)
  99.     : Window(base), refXml(refXml) {
  100.     //pointer auf die 'cmdBeenden'-instanz holen
  101.     refXml->get_widget("cmdQuit",tbtnBeenden);
  102.  
  103.     tbtnBeenden->signal_clicked().connect(mem_fun(*this, &MainWindow::cmdBeenden));
  104.  
  105.  
  106.  
  107.  
  108.     //refXml->get_widget("cmdQuit",tbtnBeenden);
  109.         //das clicked-signal mit der elementfunktion 'cmdBeenden' verbinden
  110.  
  111. }
  112.  
  113.  
  114. /*
  115.  * overview.hpp
  116.  *
  117.  *  Created on: 19.02.2013
  118.  *      Author: tomislav
  119.  */
  120.  
  121. #ifndef OVERVIEW_HPP_
  122. #define OVERVIEW_HPP_
  123. #include <gtkmm.h>
  124. #include <string>
  125. using namespace std;
  126.  
  127. class Overview: public Gtk::Window {
  128. private:
  129.     Glib::RefPtr<Gtk::Builder> &refXml;
  130. protected:
  131.  
  132. public:
  133.     Overview(GtkWindow* base, Glib::RefPtr<Gtk::Builder> &refXml);
  134.     virtual void cmdOverview() {
  135.         show();
  136.     }
  137.  
  138. };
  139.  
  140. #endif /* OVERVIEW_HPP_ */
  141.  
  142.  
  143. /*
  144.  * overview.cpp
  145.  *
  146.  *  Created on: 19.02.2013
  147.  *      Author: tomislav
  148.  */
  149. #include "overview.hpp"
  150. using namespace Gtk;
  151.  
  152. Overview::Overview(GtkWindow* base, Glib::RefPtr<Gtk::Builder> &refXml) :
  153.         Window(base), refXml(refXml) {
  154.  
  155. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement