App-Chart

 view release on metacpan or  search on metacpan

lib/App/Chart/Gtk2/WatchlistDialog.pm  view on Meta::CPAN

  #   $combobox->signal_connect (changed => \&_do_combobox_changed);
  #   $action_area->add ($combobox);

  $self->add_buttons ('gtk-refresh'   => RESPONSE_REFRESH,
                      'gtk-delete'    => RESPONSE_DELETE);
  {
    my $intraday_button = $self->{'intraday_button'}
      = Gtk2::Button->new_with_mnemonic (__('_Intraday'));
    $self->add_action_widget ($intraday_button, RESPONSE_INTRADAY);
  }
  {
    my $edit_button = $self->{'edit_button'}
      = Gtk2::Button->new_with_mnemonic (__('_Edit Name'));
    $self->add_action_widget ($edit_button, RESPONSE_EDIT_NAME);
  }
  $self->add_buttons ('gtk-close'     => 'close',
                      'gtk-help'      => 'help');



  require App::Chart::Gtk2::WatchlistModel;
  my $model = App::Chart::Gtk2::WatchlistModel->new ($symlist);

  my $symbols_vbox = Gtk2::VBox->new;
  my $symbols_tab_eventbox = $self->{'symbols_tab_eventbox'}
    = Gtk2::EventBox->new;
  $symbols_tab_eventbox->signal_connect
    (button_press_event => \&_do_symbols_tab_button_press);
  my $symbols_tab_label = $self->{'symbols_tab_label'} = Gtk2::Label->new;
  $symbols_tab_label->show;
  $symbols_tab_eventbox->add ($symbols_tab_label);
  $notebook->append_page ($symbols_vbox, $symbols_tab_eventbox);

  my $symlists_vbox = $self->{'symlists_vbox'} = Gtk2::VBox->new;
  $notebook->append_page ($symlists_vbox, __('Symlists'));
  App::Chart::Gtk2::Ex::NotebookLazyPages::set_init
      ($notebook, $symlists_vbox, \&_init_symlists_page);

  $notebook->signal_connect ('notify::page' => \&_do_notebook_notify_page);

  my $scrolled = $self->{'symbols_scrolled'} = Gtk2::ScrolledWindow->new;
  $scrolled->set(hscrollbar_policy => 'never');
  $symbols_vbox->pack_start ($scrolled, 1,1,0);

  my $treeview = $self->{'symbols_treeview'}
    = Gtk2::TreeView->new_with_model ($model);
  $treeview->set (fixed_height_mode => 1,
                  reorderable => $symlist && $symlist->can_edit);

  $scrolled->add ($treeview);
  $treeview->signal_connect (query_tooltip => \&_do_query_tooltip);
  $treeview->set (has_tooltip => 1);

  my $selection = $treeview->get_selection;
  $selection->signal_connect (changed => \&_do_symbol_selection_changed);
  $selection->set_mode ('single');

  my $renderer_left = Gtk2::CellRendererText->new;
  $renderer_left->set (xalign => 0,
                       ypad => 0);
  $renderer_left->set_fixed_height_from_font (1);
  my $renderer_right = Gtk2::CellRendererText->new;
  $renderer_right->set (xalign => 1,
                        ypad => 0);
  $renderer_right->set_fixed_height_from_font (1);

  {
    my $renderer = $self->{'symbol_renderer'} = Gtk2::CellRendererText->new;
    $renderer->set (xalign => 0, ypad => 0);
    $renderer->set_fixed_height_from_font (1);

    my $column = Gtk2::TreeViewColumn->new_with_attributes
      (__('Symbol'), $renderer,
       text => $model->COL_SYMBOL,
       foreground => $model->COL_COLOUR);
    $column->set (sizing => 'fixed',
                  fixed_width => 8*$em,
                  resizable => 1);
    App::Chart::Gtk2::Ex::CellRendererTextBits::renderer_edited_set_value
        ($renderer, $column, 0);
    $renderer->signal_connect (edited => \&_do_symbol_renderer_edited);
    $treeview->append_column ($column);
  }
  {
    my $column = Gtk2::TreeViewColumn->new_with_attributes
      (__('Bid/Offer'), $renderer_right,
       text => $model->COL_BIDOFFER,
       foreground => $model->COL_COLOUR);
    $column->set (sizing => 'fixed',
                  fixed_width => 12*$em,
                  resizable => 1);
    $treeview->append_column ($column);
  }
  {
    my $column = Gtk2::TreeViewColumn->new_with_attributes
      (__('Last'), $renderer_right,
       text => $model->COL_LAST,
       foreground => $model->COL_COLOUR);
    $column->set (sizing => 'fixed',
                  fixed_width => 7*$em,
                  resizable => 1);
    $treeview->append_column ($column);
  }
  {
    my $column = Gtk2::TreeViewColumn->new_with_attributes
      (__('Change'), $renderer_right,
       text => $model->COL_CHANGE,
       foreground => $model->COL_COLOUR);
    $column->set (sizing => 'fixed',
                  fixed_width => 7*$em,
                  resizable => 1);
    $treeview->append_column ($column);
  }
  {
    my $column = Gtk2::TreeViewColumn->new_with_attributes
      (__('High'), $renderer_right,
       text => $model->COL_HIGH,
       foreground => $model->COL_COLOUR);
    $column->set (sizing => 'fixed',
                  fixed_width => 7*$em,
                  resizable => 1);
    $treeview->append_column ($column);
  }
  {
    my $column = Gtk2::TreeViewColumn->new_with_attributes
      (__('Low'), $renderer_right,
       text => $model->COL_LOW,
       foreground => $model->COL_COLOUR);
    $column->set (sizing => 'fixed',
                  fixed_width => 7*$em,



( run in 0.456 second using v1.01-cache-2.11-cpan-5735350b133 )