123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- #include "uiPrintAll.hh"
- UiPrintAll::UiPrintAll(Fila* fila): box0(Gtk::Orientation::VERTICAL), button("Back"){
- this->fila = fila;
- set_title("Print all");
- set_child(box0);
- box0.set_margin(5);
-
- if(this->fila->estaVazia()){
- box0.append(m_label);
- m_label.set_text("This queue is empty");
- } else {
- set_default_size(250, 200);
-
- scrolledwindow.set_child(columnview);
- scrolledwindow.set_policy(Gtk::PolicyType::AUTOMATIC, Gtk::PolicyType::AUTOMATIC);
- scrolledwindow.set_expand();
- box0.append(scrolledwindow);
-
- m_ListStore = Gio::ListStore<ModelColumns>::create();
- //m_ListStore->append(ModelColumns::create("atividade.odt", 1));
- //m_ListStore->append(ModelColumns::create("planilha.ods", 3));
- while(!fila->estaVazia()){
- Documento* tmp = fila->imprimir();
- m_ListStore->append(ModelColumns::create(tmp->retornaNome(), tmp->retornaPrioridade()));
- delete tmp;
- }
-
- auto selection_model = Gtk::SingleSelection::create(m_ListStore);
- selection_model->set_autoselect(false);
- selection_model->set_can_unselect(true);
- columnview.set_model(selection_model);
- columnview.add_css_class("data-table");
- columnview.set_reorderable(true);
- // Name column
- auto factory = Gtk::SignalListItemFactory::create();
- factory->signal_setup().connect(sigc::bind(sigc::mem_fun(*this,
- &UiPrintAll::label), Gtk::Align::START));
- factory->signal_bind().connect(
- sigc::mem_fun(*this, &UiPrintAll::name));
- auto column = Gtk::ColumnViewColumn::create("Name", factory);
- columnview.append_column(column);
- // Number column
- factory = Gtk::SignalListItemFactory::create();
- factory->signal_setup().connect(sigc::bind(sigc::mem_fun(*this,
- &UiPrintAll::label), Gtk::Align::END));
- factory->signal_bind().connect(
- sigc::mem_fun(*this, &UiPrintAll::priority));
- column = Gtk::ColumnViewColumn::create("Priority", factory);
- columnview.append_column(column);
- }
- box0.append(box1);
- box1.append(button);
-
- button.set_hexpand(true);
- button.set_halign(Gtk::Align::END);
- button.signal_clicked().connect(sigc::mem_fun(*this, &Window::hide));
-
- }
- void UiPrintAll::label(const Glib::RefPtr<Gtk::ListItem>& list_item, Gtk::Align halign){
- list_item->set_child(*Gtk::make_managed<Gtk::Label>("", halign));
- }
- void UiPrintAll::name(const Glib::RefPtr<Gtk::ListItem>& list_item){
- auto col = std::dynamic_pointer_cast<ModelColumns>(list_item->get_item());
- if (!col)
- return;
- auto label = dynamic_cast<Gtk::Label*>(list_item->get_child());
- if (!label)
- return;
- label->set_text(col->m_col_name);
- }
- void UiPrintAll::priority(const Glib::RefPtr<Gtk::ListItem>& list_item){
- auto col = std::dynamic_pointer_cast<ModelColumns>(list_item->get_item());
- if (!col)
- return;
- auto label = dynamic_cast<Gtk::Label*>(list_item->get_child());
- if (!label)
- return;
- // 10 digits, using leading zeroes.
- label->set_text(std::to_string(col->m_col_priority));
- }
- UiPrintAll::~UiPrintAll(){
- delete this->fila;
- }
|