function __create_box() { $box = new GtkVBox(); $box->pack_start(new GtkLabel('Double click with the mouse on a file, or select by key and press return'), false); $paned = new GtkHPaned(); $paned->set_position(200); //filename, markup-filename, fullpath, is_dir, preview image $mFile = new GtkListStore(GObject::TYPE_STRING, GObject::TYPE_STRING, GObject::TYPE_STRING, GObject::TYPE_BOOLEAN, GdkPixbuf::gtype); $mFile->set_sort_column_id(0, Gtk::SORT_ASCENDING); $vFile = new GtkTreeView($mFile); $col = new GtkTreeViewColumn('Image', new GtkCellRendererPixbuf(), 'pixbuf', 4); $text = new GtkCellRendererText(); $col->pack_start($text); $col->add_attribute($text, 'markup', 1); $vFile->append_column($col); $vFile->set_headers_visible(false); $vFile->connect('key-press-event', array($this, 'onPressFile')); $vFile->connect('button-press-event', array($this, 'onPressFile')); /* GtkIconView has some problems with text that are too long and missing icons $vFile = new GtkIconView(); $vFile->set_model($mFile); $vFile->set_columns(1); $vFile->set_pixbuf_column(3); $vFile->set_text_column(0); $vFile->set_item_width(100); */ $this->loadFiles($mFile, getcwd()); $scrwndFiles = new GtkScrolledWindow(); $scrwndFiles->add($vFile); $scrwndFiles->set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC); $vboxFile = new GtkVBox(); $vboxFile->pack_start($scrwndFiles); $chkImg = new GtkCheckbutton('Load preview images'); $chkImg->set_active(true); $chkImg->connect('toggled', array($this, 'onCheckPreview')); $vboxFile->pack_start($chkImg, false); $paned->add1($vboxFile); $this->img = new GtkImage(); $scrwndImg = new GtkScrolledWindow(); $scrwndImg->add_with_viewport($this->img); $scrwndImg->set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC); $paned->add2($scrwndImg); $box->pack_end($paned); return $box; }
private function window() { //create window $this->set_title("calculator GUI"); $this->set_default_size(350, 350); $this->connect_simple('destroy', array('gtk', 'main_quit')); //create vbox $vbox = new GtkVBox(); //create entry box $this->entry = new GtkEntry(); $this->entry->set_size_request(100, 100); //create button $btn1 = new GtkButton(); $btn2 = new GtkButton(); $btn3 = new GtkButton(); $btnsin = new GtkButton(); $btncos = new GtkButton(); $btn4 = new GtkButton(); $btn5 = new GtkButton(); $btn6 = new GtkButton(); $btnt2 = new GtkButton(); $btnrad = new GtkButton(); $btn7 = new GtkButton(); $btn8 = new GtkButton(); $btn9 = new GtkButton(); $btn0 = new GtkButton(); $btndot = new GtkButton(); $btnpercent = new GtkButton(); $btnplus = new GtkButton(); $btntan = new GtkButton(); $btncot = new GtkButton(); $btnminus = new GtkButton(); $btndiv = new GtkButton(); $btnmulti = new GtkButton(); $btnequal = new GtkButton(); $btnref = GtkButton::new_from_stock(Gtk::STOCK_REFRESH); $btnback = GtkButton::new_from_stock(Gtk::STOCK_CLEAR); //set button value $btn1->set_label('1'); $btn1->connect('clicked', array($this, 'click1')); $btn2->set_label('2'); $btn2->connect('clicked', array($this, 'click2')); $btn3->set_label('3'); $btn3->connect('clicked', array($this, 'click3')); $btn4->set_label('4'); $btn4->connect('clicked', array($this, 'click4')); $btn5->set_label('5'); $btn5->connect('clicked', array($this, 'click5')); $btn6->set_label('6'); $btn6->connect('clicked', array($this, 'click6')); $btn7->set_label('7'); $btn7->connect('clicked', array($this, 'click7')); $btn8->set_label('8'); $btn8->connect('clicked', array($this, 'click8')); $btn9->set_label('9'); $btn9->connect('clicked', array($this, 'click9')); $btn0->set_label('0'); $btn0->connect('clicked', array($this, 'click0')); $btndot->set_label('.'); $btndot->connect('clicked', array($this, 'clickdot')); $btnpercent->set_label('%'); $btnpercent->connect('clicked', array($this, 'clickpercent')); $btnplus->set_label('+'); $btnplus->connect('clicked', array($this, 'clickplus')); $btnminus->set_label('-'); $btnminus->connect('clicked', array($this, 'clickminus')); $btndiv->set_label('/'); $btndiv->connect('clicked', array($this, 'clickdiv')); $btnmulti->set_label('*'); $btnmulti->connect('clicked', array($this, 'clickmulti')); $btnequal->set_label('='); $btnequal->connect('clicked', array($this, 'clickequal')); $btnt2->set_label('^2'); //$btnt2->connect('clicked',array($this,'clickt2')); //$btnrad->set_label('v--'); $btnrad->connect('clicked', array($this, 'clickrad')); $btnsin->set_label('sin'); $btnsin->connect('clicked', array($this, 'clicksin')); $btncos->set_label('cos'); $btncos->connect('clicked', array($this, 'clickcos')); $btntan->set_label('tan'); $btntan->connect('clicked', array($this, 'clicktan')); $btncot->set_label('cot'); $btncot->connect('clicked', array($this, 'clickcot')); //create table $tbl = new GtkTable(4, 6, true); //set button on table $tbl->attach($btn7, 0, 1, 0, 1); $tbl->attach($btn8, 1, 2, 0, 1); $tbl->attach($btn9, 2, 3, 0, 1); $tbl->attach($btnmulti, 3, 4, 0, 1); $tbl->attach($btnref, 4, 5, 0, 1); $tbl->attach($btnback, 5, 6, 0, 1); $tbl->attach($btn4, 0, 1, 1, 2); $tbl->attach($btn5, 1, 2, 1, 2); $tbl->attach($btn6, 2, 3, 1, 2); $tbl->attach($btndiv, 3, 4, 1, 2); $tbl->attach($btnpercent, 4, 5, 1, 2); $tbl->attach($btnt2, 5, 6, 1, 2); $tbl->attach($btn1, 0, 1, 2, 3); $tbl->attach($btn2, 1, 2, 2, 3); $tbl->attach($btn3, 2, 3, 2, 3); $tbl->attach($btnminus, 3, 4, 2, 3); $tbl->attach($btnsin, 4, 5, 2, 3); $tbl->attach($btncos, 5, 6, 2, 3); $tbl->attach($btn0, 0, 1, 3, 4); $tbl->attach($btndot, 1, 2, 3, 4); $tbl->attach($btnequal, 2, 3, 3, 4); $tbl->attach($btnplus, 3, 4, 3, 4); $tbl->attach($btntan, 4, 5, 3, 4); $tbl->attach($btncot, 5, 6, 3, 4); //add to vbox $vbox->pack_start($this->entry, true, true, 0); $vbox->pack_end($tbl, true, true, 0); //add to window $this->add($vbox); $this->show_all(); }