/** * Class Constructor * @param $name Name of the widget */ public function __construct($name) { parent::__construct($name); $this->widget = new GtkVBox(); parent::add($this->widget); $this->orientation = 'vertical'; $this->count = 0; $this->types = array(); $this->created = FALSE; $this->table_fields = new TTable(); $this->editing = FALSE; $this->widget->pack_start($this->table_fields, false, false); $this->view = new GtkTreeView(); $this->model = new GtkListStore(); $button_bar = new GtkHBox(); $add = GtkButton::new_from_stock(Gtk::STOCK_SAVE); $del = GtkButton::new_from_stock(Gtk::STOCK_DELETE); $can = GtkButton::new_from_stock(Gtk::STOCK_CANCEL); $add->connect_simple('clicked', array($this, 'onSave')); $del->connect_simple('clicked', array($this, 'onDelete')); $can->connect_simple('clicked', array($this, 'onCancel')); $button_bar->pack_start($add, FALSE, FALSE); $button_bar->pack_start($del, FALSE, FALSE); $button_bar->pack_start($can, FALSE, FALSE); $this->widget->pack_start($button_bar, false, false); $scroll = new GtkScrolledWindow(); $scroll->add($this->view); $scroll->set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC); $this->widget->pack_start($scroll, false, false); $this->view->set_size_request(400, 140); $this->height = 140; $this->view->connect_simple('button_release_event', array($this, 'onClick')); }
/** * Class Constructor * @param $name Widet's name */ public function __construct($name) { parent::__construct(); parent::set_size_request(200, -1); $this->textview = new GtkTextView(); $this->textview->set_wrap_mode(Gtk::WRAP_WORD); $this->textbuffer = $this->textview->get_buffer(); parent::add($this->textview); $this->wname = $name; $this->validations = array(); }
/** * Class Constructor * @param $message A string containint the question * @param $action_yes Action taken for YES response * @param $action_no Action taken for NO response */ public function __construct($message, TAction $action_yes, TAction $action_no = NULL) { $buttons = array(Gtk::STOCK_YES, Gtk::RESPONSE_YES); if ($action_no instanceof TAction) { $buttons[] = Gtk::STOCK_NO; $buttons[] = Gtk::RESPONSE_NO; } $buttons[] = Gtk::STOCK_CANCEL; $buttons[] = Gtk::RESPONSE_CANCEL; parent::__construct('', NULL, Gtk::DIALOG_MODAL, $buttons); parent::set_position(Gtk::WIN_POS_CENTER); parent::set_size_request(500, 300); $textview = new GtkTextView(); $textview->set_wrap_mode(Gtk::WRAP_WORD); $textview->set_border_width(12); $textbuffer = $textview->get_buffer(); $tagtable = $textbuffer->get_tag_table(); $customTag = new GtkTextTag(); $tagtable->add($customTag); $customTag->set_property('foreground', '#525252'); $tagBegin = $textbuffer->create_mark('tagBegin', $textbuffer->get_end_iter(), true); $textbuffer->insert_at_cursor("\n " . $message); $tagEnd = $textbuffer->create_mark('tagEnd', $textbuffer->get_end_iter(), true); $start = $textbuffer->get_iter_at_mark($tagBegin); $end = $textbuffer->get_iter_at_mark($tagEnd); $textbuffer->apply_tag($customTag, $start, $end); $textview->set_editable(FALSE); $textview->set_cursor_visible(FALSE); $pango = new PangoFontDescription('Sans 14'); $textview->modify_font($pango); $image = GtkImage::new_from_stock(Gtk::STOCK_DIALOG_QUESTION, Gtk::ICON_SIZE_DIALOG); $scroll = new GtkScrolledWindow(); $scroll->set_policy(Gtk::POLICY_NEVER, Gtk::POLICY_ALWAYS); $scroll->add($textview); $hbox = new GtkHBox(); $this->vbox->pack_start($hbox); $hbox->pack_start($image, FALSE, FALSE); $hbox->pack_start($scroll, TRUE, TRUE); $this->show_all(); $result = parent::run(); if ($result == Gtk::RESPONSE_YES) { parent::destroy(); call_user_func_array($action_yes->getAction(), array($action_yes->getParameters())); } else { if ($result == Gtk::RESPONSE_NO) { parent::destroy(); call_user_func_array($action_no->getAction(), array($action_no->getParameters())); } else { parent::destroy(); } } }
public function __construct() { $this->frame = new GtkFrame(); $frameBox = new GtkVBox(false, 10); $frameBox->set_border_width(10); $titleBox = new GtkHBox(false, 10); $titleLabel = new GtkLabel("User Roles"); $titleLabel->set_markup("<span weight='bold'>User Roles</span>"); $titleLabel->set_alignment(0, 0.5); $this->statusLabel = new GtkLabel(""); $this->statusLabel->set_alignment(1, 0.5); $titleBox->pack_start($titleLabel, true, true, 0); $titleBox->pack_end($this->statusLabel, true, true, 0); $frameBox->pack_start($titleBox, false, false, 0); $this->frame->add($frameBox); $this->roleListStore = new GtkRefListStore(Gobject::TYPE_STRING); $this->roleListTree = new GtkRefTreeView($this->roleListStore); $this->roleListTree->set_headers_visible(false); $roleListSelection = $this->roleListTree->get_selection(); $roleListSelection->set_mode(Gtk::SELECTION_SINGLE); $roleListSelection->connect('changed', array($this, 'selectRoleToRemove')); $rolesWindow = new GtkScrolledWindow(); $rolesWindow->set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC); $rolesWindow->set_shadow_type(Gtk::SHADOW_ETCHED_IN); $rolesWindow->add($this->roleListTree); $frameBox->pack_start($rolesWindow, true, true, 0); $renderer = new GtkCellRendererText(); $renderer->set_property("editable", false); $column = new GtkTreeViewColumn('Role', $renderer, "text", 0); $column->set_expand(true); $column->set_resizable(false); $this->roleListTree->append_column($column); $this->roleComboStore = new GtkRefListStore(Gobject::TYPE_STRING); $this->roleComboStore->refInsert(RoleEnum::getList()); $this->roleCombo = new GtkRefComboBox($this->roleComboStore); $roleCell = new GtkCellRendererText(); $roleCell->set_property('ellipsize', Pango::ELLIPSIZE_END); $this->roleCombo->pack_start($roleCell); $this->roleCombo->set_attributes($roleCell, 'text', 0); $this->roleCombo->connect('changed', array($this, 'selectRoleToAdd')); $this->addButton = new GtkButton("Add"); $this->addButton->set_sensitive(false); $this->removeButton = new GtkButton("Remove"); $this->removeButton->set_sensitive(false); $this->enableForm(false); $buttonBox = new GtkHBox(false, 8); $buttonBox->pack_end($this->removeButton, false, false, 0); $buttonBox->pack_end($this->addButton, false, false, 0); $buttonBox->pack_end($this->roleCombo, true, true, 0); $frameBox->pack_end($buttonBox, false, false, 0); }
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; }
public function __construct() { $this->frame = new GtkFrame(); $frameBox = new GtkVBox(false, 10); $frameBox->set_border_width(10); $titleBox = new GtkHBox(false, 10); $titleLabel = new GtkLabel("Users"); $titleLabel->set_markup("<span weight='bold'>Users</span>"); $titleLabel->set_alignment(0, 0.5); $this->statusLabel = new GtkLabel(""); $this->statusLabel->set_alignment(1, 0.5); $titleBox->pack_start($titleLabel, true, true, 0); $titleBox->pack_end($this->statusLabel, true, true, 0); $frameBox->pack_start($titleBox, false, false, 0); $this->frame->add($frameBox); $this->userListStore = new GtkRefListStore(Gobject::TYPE_STRING, Gobject::TYPE_STRING, Gobject::TYPE_STRING, Gobject::TYPE_STRING, Gobject::TYPE_STRING); $this->userListTree = new GtkRefTreeView($this->userListStore); $this->userListTree->set_rules_hint(true); $usersWindow = new GtkScrolledWindow(); $usersWindow->set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC); $usersWindow->set_shadow_type(Gtk::SHADOW_ETCHED_IN); $usersWindow->add($this->userListTree); $frameBox->pack_start($usersWindow, true, true, 0); $cols = array('Username', 'First Name', 'Last Name', 'Email', 'Department'); foreach ($cols as $num => $item) { $renderer = new GtkCellRendererText(); $renderer->set_property("editable", false); $column = new GtkTreeViewColumn($item, $renderer, "text", $num); $column->set_sort_column_id($num); $column->set_expand(true); $column->set_resizable(true); $this->userListTree->append_column($column); } $userSelection = $this->userListTree->get_selection(); $userSelection->set_mode(Gtk::SELECTION_SINGLE); $userSelection->connect('changed', array($this, 'isSelected')); $this->newButton = new GtkButton("New"); $this->newButton->connect('clicked', array($this, 'deSelect')); $this->delButton = new GtkButton("Delete"); $this->delButton->set_sensitive(false); $this->delButton->connect('clicked', array($this, 'confirmDeletion')); $buttonBox = new GtkHBox(false, 8); $buttonBox->pack_end($this->newButton, false, false, 0); $buttonBox->pack_end($this->delButton, false, false, 0); $frameBox->pack_end($buttonBox, false, false, 0); }
/** * Class Constructor */ public function __construct() { $this->types = array(); $this->columns = array(); $this->count = 0; parent::__construct(); $this->view = new GtkTreeView(); $this->model = new GtkListStore(); $this->view->set_size_request(200, -1); $scroll = new GtkScrolledWindow(); $scroll->add($this->view); $this->handler = $this->view->connect_simple('row-activated', array($this, 'onDoubleClick')); $this->action_area = new GtkHButtonBox(); $this->action_area->set_layout(Gtk::BUTTONBOX_START); parent::pack_start($scroll, true, true); parent::pack_start($this->action_area, false, false); parent::set_size_request(-1, 200); }
/** * Make the datagrid scrollable */ public function makeScrollable() { $this->scrollable = TRUE; $children = parent::get_children(); if ($children) { foreach ($children as $child) { parent::remove($child); } } $scroll = new GtkScrolledWindow(); $scroll->add($this->view); $scroll->set_size_request(-1, $this->height); parent::pack_start($scroll, true, true); parent::pack_start($this->action_area, false, false); if ($this->height) { parent::set_size_request(-1, $this->height); } }
/** * Class Constructor * @param $type Type of the message (info, error) * @param $message Message to be shown * @param $action Action to be processed when closing the dialog */ public function __construct($type, $message, TAction $action = NULL) { parent::__construct('', NULL, Gtk::DIALOG_MODAL, array(Gtk::STOCK_OK, Gtk::RESPONSE_OK)); parent::set_position(Gtk::WIN_POS_CENTER); parent::set_size_request(500, 300); $textview = new GtkTextView(); $textview->set_wrap_mode(Gtk::WRAP_WORD); $textview->set_border_width(12); $textbuffer = $textview->get_buffer(); $tagtable = $textbuffer->get_tag_table(); $customTag = new GtkTextTag(); $tagtable->add($customTag); $customTag->set_property('foreground', '#525252'); $message = "\n " . str_replace('<br>', "\n ", $message); $tagBegin = $textbuffer->create_mark('tagBegin', $textbuffer->get_end_iter(), true); $textbuffer->insert_at_cursor(strip_tags($message)); $tagEnd = $textbuffer->create_mark('tagEnd', $textbuffer->get_end_iter(), true); $start = $textbuffer->get_iter_at_mark($tagBegin); $end = $textbuffer->get_iter_at_mark($tagEnd); $textbuffer->apply_tag($customTag, $start, $end); $textview->set_editable(FALSE); $textview->set_cursor_visible(FALSE); $pango = new PangoFontDescription('Sans 14'); $textview->modify_font($pango); $image = $type == 'info' ? GtkImage::new_from_stock(Gtk::STOCK_DIALOG_INFO, Gtk::ICON_SIZE_DIALOG) : GtkImage::new_from_stock(Gtk::STOCK_DIALOG_ERROR, Gtk::ICON_SIZE_DIALOG); $scroll = new GtkScrolledWindow(); $scroll->set_policy(Gtk::POLICY_NEVER, Gtk::POLICY_ALWAYS); $scroll->add($textview); $hbox = new GtkHBox(); $this->vbox->pack_start($hbox); $hbox->pack_start($image, FALSE, FALSE); $hbox->pack_start($scroll, TRUE, TRUE); $this->show_all(); parent::connect('key_press_event', array($this, 'onClose')); $result = parent::run(); if ($result == Gtk::RESPONSE_OK) { if ($action) { $parameters = $action->getParameters(); call_user_func_array($action->getAction(), array($parameters)); } } parent::destroy(); }
function __create_box() { $iv = new GtkIconView(); $model = new GtkListStore(GdkPixbuf::gtype, GObject::TYPE_STRING); $iv->set_model($model); $iv->set_columns(1); $ids = Gtk::stock_list_ids(); sort($ids); foreach ($ids as $id) { $pixbuf = $iv->render_icon($id, Gtk::ICON_SIZE_DIALOG); $model->set($model->append(), 0, $pixbuf, 1, $id); } $iv->set_pixbuf_column(0); $iv->set_text_column(1); //multi select incl. zooming up an rectangle to select icons $iv->set_selection_mode(Gtk::SELECTION_MULTIPLE); //labels at the right side $iv->set_orientation(Gtk::ORIENTATION_HORIZONTAL); //enough place for the text so that it doesn't wrap $iv->set_item_width(200); //spacing between icon and label $iv->set_spacing(0); //spacing between single rows $iv->set_row_spacing(0); //spacing between cols //margin from the edges of the view widget -> like the CSS margin property $iv->set_margin(5); //in how many columns the view will be split //Icon order (for 3 columns): // 1 2 3 // 4 5 6 //FIXME: is there a way to arrange it horizontally so that it's arranged that way: // 1 4 7 // 2 5 8 // 3 6 9 ? //0 is auto-fit $iv->set_columns(0); $editor = new WidgetEditor($iv, array(array('selection_mode', GtkComboBox::gtype, 'Gtk::SELECTION_'), array('orientation', GtkComboBox::gtype, 'Gtk::ORIENTATION_'), array('item_width', GtkScale::gtype, 0, 500), array('spacing', GtkScale::gtype, -100, 100), array('row_spacing', GtkScale::gtype, -100, 100), array('column_spacing', GtkScale::gtype, -100, 100), array('margin', GtkScale::gtype, -100, 200), array('columns', GtkScale::gtype, 0, 20))); $scrollwin = new GtkScrolledWindow(); $scrollwin->set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC); $scrollwin->add($iv); return $scrollwin; }
function uprav_behy() { global $G, $model, $view; #debug_log('úprava behov'); $dialog = new GtkDialog(); // note 1 $viewport1 = new GtkViewPort(); $dialog->set_title('Behy'); $dialog->set_position(GTK::WIN_POS_CENTER); $dialog->set_default_size(960, 420); $model = new GtkListStore(Gobject::TYPE_STRING, Gobject::TYPE_STRING, Gobject::TYPE_STRING, Gobject::TYPE_STRING, Gobject::TYPE_STRING, Gobject::TYPE_STRING, Gobject::TYPE_STRING, Gobject::TYPE_STRING, Gobject::TYPE_STRING); #datum #nazov #druh (OA, OJ, A1, A2, A3, J1, J2, J3) #rozhodca #$rozhodcovia=explode(",",$G["config"]->__get("rozhodca")); $view = new GtkTreeView($model); # $view->set_grid_lines(Gtk::TREE_VIEW_GRID_LINES_BOTH); $column1 = new GtkTreeViewColumn('Kód'); $column2 = new GtkTreeViewColumn('Názov'); $column3 = new GtkTreeViewColumn('Filter'); $column4 = new GtkTreeViewColumn('Dátum'); $column5 = new GtkTreeViewColumn('Rozhodca'); $column6 = new GtkTreeViewColumn('Dĺžka'); $column7 = new GtkTreeViewColumn('Prekážky'); $column8 = new GtkTreeViewColumn('Štd.č'); $column9 = new GtkTreeViewColumn('Max.č'); $view->append_column($column1); $view->append_column($column2); $view->append_column($column3); $view->append_column($column4); $view->append_column($column5); $view->append_column($column6); $view->append_column($column7); $view->append_column($column8); $view->append_column($column9); $cell_renderer1 = new GtkCellRendererText(); $cell_renderer2 = new GtkCellRendererText(); $cell_renderer3 = new GtkCellRendererText(); $cell_renderer4 = new GtkCellRendererText(); $cell_renderer5 = new GtkCellRendererText(); $cell_renderer6 = new GtkCellRendererText(); $cell_renderer7 = new GtkCellRendererText(); $cell_renderer8 = new GtkCellRendererText(); $cell_renderer9 = new GtkCellRendererText(); $cell_renderer1->set_property('width', 60); $cell_renderer1->set_property('editable', true); $cell_renderer2->set_property('width', 220); $cell_renderer2->set_property('editable', true); $cell_renderer3->set_property('width', 50); $cell_renderer3->set_property('editable', true); $cell_renderer4->set_property('width', 80); $cell_renderer4->set_property('editable', true); $cell_renderer5->set_property('width', 180); $cell_renderer5->set_property('editable', true); $cell_renderer6->set_property('width', 50); $cell_renderer6->set_property('editable', true); $cell_renderer7->set_property('width', 50); $cell_renderer7->set_property('editable', true); $cell_renderer8->set_property('width', 50); $cell_renderer8->set_property('editable', true); $cell_renderer9->set_property('width', 50); $cell_renderer9->set_property('editable', true); $cell_renderer1->connect('edited', 'callback_start1'); $cell_renderer2->connect('edited', 'callback_start2'); $cell_renderer3->connect('edited', 'callback_start3'); $cell_renderer4->connect('edited', 'callback_start4'); $cell_renderer5->connect('edited', 'callback_start5'); $cell_renderer6->connect('edited', 'callback_start6'); $cell_renderer7->connect('edited', 'callback_start7'); $cell_renderer8->connect('edited', 'callback_start8'); $cell_renderer9->connect('edited', 'callback_start9'); #$cell_renderer3->set_property('width', -1); $column1->pack_start($cell_renderer1, true); $column2->pack_start($cell_renderer2, true); $column3->pack_start($cell_renderer3, true); $column4->pack_start($cell_renderer4, true); $column5->pack_start($cell_renderer5, true); $column6->pack_start($cell_renderer6, true); $column7->pack_start($cell_renderer7, true); $column8->pack_start($cell_renderer8, true); $column9->pack_start($cell_renderer9, true); $column1->set_attributes($cell_renderer1, 'text', 0); $column2->set_attributes($cell_renderer2, 'text', 1); $column3->set_attributes($cell_renderer3, 'text', 2); $column4->set_attributes($cell_renderer4, 'text', 3); $column5->set_attributes($cell_renderer5, 'text', 4); $column6->set_attributes($cell_renderer6, 'text', 5); $column7->set_attributes($cell_renderer7, 'text', 6); $column8->set_attributes($cell_renderer8, 'text', 7); $column9->set_attributes($cell_renderer9, 'text', 8); #print_r($G["behy"]);exit; foreach ($G["behy"] as $b) { $model->append($b); } $toolbar = new GtkHButtonBox(); $addbutton = GtkButton::new_from_stock(Gtk::STOCK_ADD); $deletebutton = GtkButton::new_from_stock(Gtk::STOCK_DELETE); #$loadbutton=GtkButton::new_from_stock(Gtk::STOCK_REFRESH); $savebutton = GtkButton::new_from_stock(Gtk::STOCK_SAVE); $savebutton->connect("pressed", "uloz_behy"); $addbutton->connect("pressed", "pridaj_beh"); $deletebutton->connect("pressed", "vymaz_beh"); $toolbar->add($addbutton); $toolbar->add($deletebutton); #$toolbar->add($loadbutton); $toolbar->add($savebutton); $toolbar->set_size_request(0, 40); $sw = new GtkScrolledWindow(); $sw->set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC); $sw->add($view); $sw->set_size_request(-1, 560); $vbox = new GtkVBox(); $vbox->add($toolbar); $vbox->add($sw); $dialog->vbox->pack_start($vbox); // note 3 $dialog->show_all(); // note 4 $dialog->run(); // note 5 $dialog->destroy(); // note 6 }
public function treeviewLoadXML($file, $mainObject = NULL) { // Lê o XML // @since rev 1 $xml = new SimpleXMLElement(file_get_contents($file)); // Cria o frame, o scrool e o treeview // @since rev 1 $treeviewName = (string) $xml['name']; $obj['treeview'] = new GtkTreeView(); $scrolled = new GtkScrolledWindow(); $scrolled->add($obj['treeview']); $obj['object'] = new GtkFrame(); $obj['object']->add($scrolled); // Verifica o modo do scroll horizontal // @since rev 1 switch (strtoupper((string) $xml['hscroll'])) { case "TRUE": $hscroll = Gtk::POLICY_ALWAYS; break; case "FALSE": $hscroll = Gtk::POLICY_NEVER; break; case "AUTO": default: $hscroll = Gtk::POLICY_AUTOMATIC; break; } // Verifica o modo do scroll vertical // @since rev 1 switch (strtoupper((string) $xml['vscroll'])) { case "TRUE": $vscroll = Gtk::POLICY_ALWAYS; break; case "FALSE": $vscroll = Gtk::POLICY_NEVER; break; case "AUTO": default: $vscroll = Gtk::POLICY_AUTOMATIC; break; } // Configura os scrolls // @since rev 1 $scrolled->set_policy($hscroll, $vscroll); // Configura o tamanho // @since rev 1 $width = isset($xml['width']) ? (int) $xml['width'] : FALSE; $height = isset($xml['height']) ? (int) $xml['height'] : FALSE; $scrolled->set_size_request($width, $height); // Seta a coluna para a busca // @since rev 1 $searchcolumn = isset($xml['searchcolumn']) ? (int) $xml['searchcolumn'] : 0; $obj['treeview']->set_search_column($searchcolumn); // Configura a visibilidade do header da coluna // @since rev 1 switch (strtoupper((string) $xml['hvisible'])) { case "FALSE": $hvisible = FALSE; break; case "TRUE": default: $hvisible = TRUE; break; } $obj['treeview']->set_headers_visible($hvisible); // Verifica se existe evento button-press-event // @since rev 1 $buttonpressevent = (string) $xml['buttonpressevent']; if (strlen($buttonpressevent) > 0) { // Verifica se é orientado à objeto // @since rev 1 if ($mainObject != NULL) { $function = array($mainObject, $buttonpressevent); } else { $function = $buttonpressevent; } $obj['treeview']->connect("button-press-event", $function); } // Verifica se existe evento cursor-changed // @since rev 1 $cursorchanged = (string) $xml['cursorchanged']; if (strlen($cursorchanged) > 0) { // Verifica se é orientado à objeto // @since rev 1 if ($mainObject != NULL) { $function = array($mainObject, $cursorchanged); } else { $function = $cursorchanged; } $obj['treeview']->connect("cursor-changed", $function); } // Percorre as configurações // @since rev 1 foreach ($xml as $configs) { // Verifica o tipo de configuração // @since rev 1 if ($configs->getName() == "columns") { // Percorre as colunas // @since rev 1 $counter = 0; $columnModel = array(); foreach ($configs as $column) { // Busca as configurações $title = (string) $column['title']; $visible = (string) $column['visible']; // Cria a coluna // @since rev 1 $modelType = Gobject::TYPE_STRING; if (strtoupper($visible) != "FALSE") { // Verifica o tipo e o render // @since rev 1 switch (strtoupper((string) $column['type'])) { // Toggle // @since rev 1 case "TOGGLE": // Cria o render // @since rev 1 $render = new GtkCellRendererToggle(); $render->set_property("activatable", TRUE); // Verifica se deve usar o autocheck // @since rev 1 switch (strtoupper((string) $column['autocheck'])) { case "FALSE": break; case "TRUE": default: $render->connect("toggled", array("FTreeViews", "on_toggle"), $obj['treeview'], $counter); break; } // Verifica se existe evento onclick da coluna // @since rev 1 $onclick = (string) $column['onclick']; if (strlen($onclick) > 0) { // Verifica se é orientado à objeto // @since rev 1 if ($mainObject != NULL) { $function = array($mainObject, $onclick); } else { $function = $onclick; } $render->connect("toggled", $function, $obj['treeview'], $counter); } // Armazena o atributo e o model // @since rev 1 $attribute = "active"; $modelType = Gobject::TYPE_BOOLEAN; break; // Texto // @since rev 1 // Texto // @since rev 1 case "TEXT": default: $render = new GtkCellRendererText(); // Verifica se a coluna é editavel // @since rev 1 switch (strtoupper((string) $column['editable'])) { case "TRUE": $render->set_property("editable", TRUE); break; case "FALSE": default: break; } // Verifica se existe sinal para edição // @since rev 1 $onedited = (string) $column['onedited']; if (strlen($onedited) > 0) { // Verifica se é orientado à objeto // @since rev 1 if ($mainObject != NULL) { $function = array($mainObject, $onedited); } else { $function = $onedited; } $render->connect("edited", $function, $obj['treeview'], $counter); } $attribute = "text"; $modelType = Gobject::TYPE_STRING; } // Cria a coluna // @since rev 1 $trvColumn = new GtkTreeViewColumn($title, $render, $attribute, $counter); $obj['treeview']->append_column($trvColumn); // Verifica se existe parametrização do tamanho // @since rev 1 if (isset($column['width'])) { $trvColumn->set_fixed_width((int) $column['width']); $trvColumn->set_sizing(Gtk::TREE_VIEW_COLUMN_FIXED); } // Verifica se existe parametrização da formatação if (isset($column['onformat'])) { $onformat = (string) $column['onformat']; // Verifica se é orientado à objeto if ($mainObject != NULL) { $function = array($mainObject, $onformat); } else { $function = $onformat; } $trvColumn->set_cell_data_func($render, $function, $counter); } } // Armazena o model // @since rev 1 $columnModel[$counter++] = $modelType; } // Seta o model // @since rev 1 $model = new GtkTreeStore(); $model->set_column_types($columnModel); $obj['treeview']->set_model($model); } } return $obj; }
/** * Create the report text areas. * * The report area consists of one text area for failures, one * text area for errors and one label for identification purposes. * All three widgets are packed into a box. * * @access private * @param none * @return &object The box containing the report areas. */ function &_createReportAreas() { // Create the containing box. $reportBox = new GtkVBox(); // Create the identification label $reportLabel = new GtkLabel('Errors and Failures:'); $reportLabel->set_alignment(0, 0); // Create the scrolled windows for the text areas. $reportScroll = new GtkScrolledWindow(); $dumpScroll = new GtkScrolledWindow(); // Make the scroll areas big enough. $reportScroll->set_usize(-1, 150); $dumpScroll->set_usize(-1, 150); // Only show the vertical scroll bar when needed. // Never show the horizontal scroll bar. $reportScroll->set_policy(GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); $dumpScroll->set_policy(GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); // Create the text areas. $this->reportArea = new GtkText(); $this->dumpArea = new GtkText(); // Don't let words get broken. $this->reportArea->set_word_wrap(true); $this->dumpArea->set_word_wrap(true); // Pack everything in. $reportBox->pack_start($reportLabel); $reportScroll->add($this->reportArea); $reportBox->pack_start($reportScroll); $dumpScroll->add($this->dumpArea); $reportBox->pack_start($dumpScroll); return $reportBox; }
function __create_text() { $scrolled_window = new GtkScrolledWindow(); $scrolled_window->set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC); $scrolled_window->set_shadow_type(Gtk::SHADOW_IN); $text_view = new GtkTextView(); $scrolled_window->add($text_view); $this->description_buffer = new GtkTextBuffer(); $text_view->set_buffer($this->description_buffer); $text_view->set_editable(false); $text_view->set_cursor_visible(false); $text_view->set_wrap_mode(Gtk::WRAP_WORD); return $scrolled_window; }