Hi everyone;

With the following source code, i tried to obtain a scroll panel that
includes list store, but i wanted to create only rows in that List Store.
There is a problem here, this code generates one row and one column at the
same time, i want only rows though.

Can anyone check this please?






class showCurrentAppointments : public Gtk::Window
{
    public:
showCurrentAppointments();
virtual ~showCurrentAppointments();
Gtk::TreeModelColumnRecord myColumn;

    protected:
void quit_button_clicked();
void save_button_clicked();

Gtk::VButtonBox buttonBox;
Gtk::VBox List,Button;
Gtk::Button closeCurrentApp;
//Tree model columns:
  class ModelColumns : public Gtk::TreeModel::ColumnRecord
  {
  public:

    ModelColumns()
    { add(colId);
add(colName);
add(colSurname);
add(colAge);
add(colEmail);
add(colMobile);
add(colDate);
    }

    Gtk::TreeModelColumn<unsigned int> colId;
    Gtk::TreeModelColumn<Glib::ustring> colName;
    Gtk::TreeModelColumn<Glib::ustring> colSurname;
    Gtk::TreeModelColumn<Glib::ustring> colAge;
    Gtk::TreeModelColumn<Glib::ustring> colEmail;
    Gtk::TreeModelColumn<Glib::ustring> colMobile;
    Gtk::TreeModelColumn<Glib::ustring> colDate;


  };

  ModelColumns mColumns;

  Gtk::ScrolledWindow infoScrolled;

  Gtk::TreeView refTreeView;
  Glib::RefPtr<Gtk::ListStore> refTreeModel;
};
showCurrentAppointments::showCurrentAppointments():
closeCurrentApp(Gtk::Stock::QUIT)
    {

    set_title("Current Appointments");
    set_default_size(1024,768);
    set_resizable(true);
    set_border_width(10);
    refTreeModel = Gtk::ListStore::create(mColumns);
    refTreeView.set_model(refTreeModel);
    infoScrolled.add(refTreeView);
    infoScrolled.set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC);
    infoScrolled.set_size_request(800,600);
    List.pack_start(infoScrolled);


    ifstream out("Appointment1.txt", ios::app);

    string sName,sSurname,sAge,sEmail,sMobile,sDate;
     if(!out){
     std::cout<<"File cannot be opened\n";
     exit(2);
        }


     char ch;
     int order=1;
     int colid=1;
      char listBuffer[40];
       int flagBuf=0;
     for(int internal=0;internal<40;internal++)
               {
           if(internal==40)
       listBuffer[internal]='\0';
           else
               listBuffer[internal]=' ';
               }

     Gtk::TreeModel::Row row;


   do{
   out.get(ch);
       if(order==1){

   if(ch=='\t'){

       sName=listBuffer;
       order++;
       flagBuf=0;

       for(int internal=0;internal<40;internal++)
           {
       if(internal==40)
   listBuffer[internal]='\0';
       else
           listBuffer[internal]=' ';
           }
   }
   else{
       listBuffer[flagBuf]=ch;
       flagBuf++;}
       }
       else if(order==2){

   if(ch=='\t'){
   sSurname=listBuffer;
   order++;
   flagBuf=0;
   for(int internal=0;internal<40;internal++)
       {if(internal==40)
   listBuffer[internal]='\0';
       else
       listBuffer[internal]=' ';
       }
   }
   else{
   listBuffer[flagBuf]=ch;
   flagBuf++;
   }
       }
       else if(order==3){

         if(ch=='\t'){
         sAge=listBuffer;
         order++;
         flagBuf=0;
       for(int internal=0;internal<40;internal++)
          {if(internal==40)
   listBuffer[internal]='\0';
       else
          listBuffer[internal]=' ';
          }
         }
         else{
         listBuffer[flagBuf]=ch;
         flagBuf++;
         }
       }
       else if(order==4){
       if(ch=='\t'){
           sEmail=listBuffer;
         order++;
            flagBuf=0;
       for(int internal=0;internal<40;internal++)
          {if(internal==40)
   listBuffer[internal]='\0';
       else
          listBuffer[internal]=' ';
          }
            }
               else{
             listBuffer[flagBuf]=ch;
             flagBuf++;
               }
       }

       else if(order==5){
       if(ch=='\t'){
               sMobile=listBuffer;
               order++;
               flagBuf=0;
             for(int internal=0;internal<40;internal++)
                {if(internal==40)
        listBuffer[internal]='\0';
            else
                listBuffer[internal]=' ';
                }
               }
               else{
               listBuffer[flagBuf]=ch;
               flagBuf++;
               }
       }
       else if(order==6){
       if(ch=='\n'){
            sDate=listBuffer;
             order=1;
            flagBuf=0;

for(int internal=0;internal<40;internal++)
    {if(internal==40)
   listBuffer[internal]='\0';
    else
    listBuffer[internal]=' ';
    }
row = *(refTreeModel->append());
    row[mColumns.colId]=colid;
    row[mColumns.colAge]=sAge;
    row[mColumns.colName]=sName;
    row[mColumns.colSurname]=sSurname;
    row[mColumns.colEmail]=sEmail;
    row[mColumns.colDate]=sDate;
    row[mColumns.colMobile]=sMobile;


    refTreeView.append_column("Number",mColumns.colId);
    refTreeView.append_column("Name",mColumns.colName);
    refTreeView.append_column("Surname",mColumns.colSurname);
    refTreeView.append_column("Age",mColumns.colAge);
    refTreeView.append_column("Mobile",mColumns.colMobile);
    refTreeView.append_column("Date",mColumns.colDate);
    colid++;
             }
             else{
            listBuffer[flagBuf]=ch;
             flagBuf++;
             }
       }



   }while(out);
     out.close();
for(int i = 0; i < 5; i++)
          {
           Gtk::TreeView::Column* pColumn = refTreeView.get_column(i);
            pColumn->set_reorderable();
          }


        buttonBox.pack_start(closeCurrentApp,Gtk::PACK_SHRINK);
        Button.pack_start(List,Gtk::PACK_SHRINK);
        Button.pack_start(buttonBox,Gtk::PACK_SHRINK);
        add(Button);

        closeCurrentApp.signal_clicked().connect(sigc::mem_fun(*this,
            &showCurrentAppointments::quit_button_clicked) );

        show_all_children();

    }
showCurrentAppointments::~showCurrentAppointments(){
}
void showCurrentAppointments::quit_button_clicked(){
    hide();
}


-- 
Uğur ARPACI
_______________________________________________
gtkmm-list mailing list
gtkmm-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtkmm-list

Reply via email to