~ubuntu-branches/ubuntu/raring/lordsawar/raring

« back to all changes in this revision

Viewing changes to src/editor/select-reward-dialog.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Barry deFreese, Barry deFreese, Gonéri Le Bouder
  • Date: 2008-06-17 11:15:26 UTC
  • mfrom: (1.1.4 upstream)
  • Revision ID: james.westby@ubuntu.com-20080617111526-yjyvu9df50zmpdo0
Tags: 0.0.9-1
[ Barry deFreese ]
* New upstream release.
  + Fixes gcc-4.3 builds so drop ftbfs_gcc-4.3_fix.diff.
  + Add new build-dependency for libgnet-dev.
* Add simple man page for new lordsawar-tile-editor.
* Add desktop file for lordsawar-tile-editor.
* Remove French translation on install.

[ Gonéri Le Bouder ]
* bump Debian Policy to 3.8.0. No change needed.
* fix wording in the 0.0.8-3 entry of the Debian changelog

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
//  Copyright (C) 2008, Ben Asselstine
 
2
//
 
3
//  This program is free software; you can redistribute it and/or modify
 
4
//  it under the terms of the GNU General Public License as published by
 
5
//  the Free Software Foundation; either version 2 of the License, or
 
6
//  (at your option) any later version.
 
7
//
 
8
//  This program is distributed in the hope that it will be useful,
 
9
//  but WITHOUT ANY WARRANTY; without even the implied warranty of
 
10
//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
11
//  GNU Library General Public License for more details.
 
12
//
 
13
//  You should have received a copy of the GNU General Public License
 
14
//  along with this program; if not, write to the Free Software
 
15
//  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 
 
16
//  02110-1301, USA.
 
17
 
 
18
#include <config.h>
 
19
 
 
20
#include <libglademm/xml.h>
 
21
#include <gtkmm/image.h>
 
22
#include <gtkmm/table.h>
 
23
#include <gtkmm/alignment.h>
 
24
#include <sigc++/functors/mem_fun.h>
 
25
#include <assert.h>
 
26
 
 
27
#include "select-reward-dialog.h"
 
28
 
 
29
#include "glade-helpers.h"
 
30
#include "../gui/input-helpers.h"
 
31
#include "../ucompose.hpp"
 
32
#include "../defs.h"
 
33
#include "../reward.h"
 
34
#include "../rewardlist.h"
 
35
 
 
36
SelectRewardDialog::SelectRewardDialog()
 
37
{
 
38
    selected_reward = 0;
 
39
    
 
40
    Glib::RefPtr<Gnome::Glade::Xml> xml
 
41
        = Gnome::Glade::Xml::create(get_glade_path()
 
42
                                    + "/select-reward-dialog.glade");
 
43
 
 
44
    Gtk::Dialog *d = 0;
 
45
    xml->get_widget("dialog", d);
 
46
    dialog.reset(d);
 
47
    
 
48
    xml->get_widget("select_button", select_button);
 
49
 
 
50
    xml->get_widget("rewards_treeview", rewards_treeview);
 
51
    rewards_list = Gtk::ListStore::create(rewards_columns);
 
52
    rewards_treeview->set_model(rewards_list);
 
53
    rewards_treeview->append_column("", rewards_columns.name);
 
54
    rewards_treeview->set_headers_visible(false);
 
55
 
 
56
    Rewardlist *rewardlist = Rewardlist::getInstance();
 
57
    Rewardlist::iterator iter = rewardlist->begin();
 
58
    for (;iter != rewardlist->end(); iter++)
 
59
      addReward(*iter);
 
60
      
 
61
    Uint32 max = rewardlist->size();
 
62
    if (max)
 
63
      {
 
64
        Gtk::TreeModel::Row row;
 
65
        row = rewards_treeview->get_model()->children()[0];
 
66
        if(row)
 
67
          rewards_treeview->get_selection()->select(row);
 
68
      }
 
69
    else
 
70
      select_button->set_sensitive(false);
 
71
}
 
72
 
 
73
void SelectRewardDialog::addReward(Reward *reward)
 
74
{
 
75
  Gtk::TreeIter i = rewards_list->append();
 
76
  (*i)[rewards_columns.name] = reward->getName();
 
77
  (*i)[rewards_columns.reward] = reward;
 
78
}
 
79
 
 
80
void SelectRewardDialog::set_parent_window(Gtk::Window &parent)
 
81
{
 
82
    dialog->set_transient_for(parent);
 
83
    //dialog->set_position(Gtk::WIN_POS_CENTER_ON_PARENT);
 
84
}
 
85
 
 
86
void SelectRewardDialog::run()
 
87
{
 
88
    dialog->show_all();
 
89
    int response = dialog->run();
 
90
 
 
91
    if (response != 1)
 
92
        selected_reward = 0;
 
93
    else
 
94
      {
 
95
        Glib::RefPtr<Gtk::TreeSelection> selection = 
 
96
          rewards_treeview->get_selection();
 
97
        Gtk::TreeModel::iterator iterrow = selection->get_selected();
 
98
 
 
99
        if (iterrow) 
 
100
          {
 
101
            Gtk::TreeModel::Row row = *iterrow;
 
102
            selected_reward = row[rewards_columns.reward];
 
103
          }
 
104
      }
 
105
}
 
106