~ubuntu-branches/ubuntu/saucy/lordsawar/saucy

« back to all changes in this revision

Viewing changes to src/editor/tileset-window.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Barry deFreese, Barry deFreese
  • Date: 2008-12-20 13:52:12 UTC
  • mfrom: (1.1.6 upstream) (5.1.2 squeeze)
  • Revision ID: james.westby@ubuntu.com-20081220135212-noeb2w3y98ebo7o9
Tags: 0.1.4-1
[ Barry deFreese ]
* New upstream release.
* Move 0.0.8-2.1 changelog entry to correct point in changelog.
* Make lordsawar-data suggest lordsawar.
* Update my e-mail address.
* Add build-depends on intltool, uuid-dev, and libboost-dev.
* Don't install locales since there are no translations currently.
* Add simple man page for new lordsawar-pbm binary.
* Drop gcc4.3 patches as they have been fixed upstream.

Show diffs side-by-side

added added

removed removed

Lines of Context:
41
41
#include "tileset-window.h"
42
42
#include "tileset-info-dialog.h"
43
43
#include "tile-preview-dialog.h"
44
 
 
45
 
#include "../gui/gtksdl.h"
46
 
#include "../gui/image-helpers.h"
47
 
#include "../gui/input-helpers.h"
48
 
#include "../gui/error-utils.h"
49
 
 
50
 
#include "../defs.h"
51
 
#include "../Configuration.h"
52
 
#include "../tilesetlist.h"
53
 
#include "../Tile.h"
54
 
#include "../File.h"
55
 
#include "../overviewmap.h"
56
 
 
57
 
#include "../ucompose.hpp"
 
44
#include "tileset-selector-editor-dialog.h"
 
45
 
 
46
#include "gtksdl.h"
 
47
#include "image-helpers.h"
 
48
#include "input-helpers.h"
 
49
#include "error-utils.h"
 
50
 
 
51
#include "defs.h"
 
52
#include "Configuration.h"
 
53
#include "tilesetlist.h"
 
54
#include "Tile.h"
 
55
#include "File.h"
 
56
#include "overviewmap.h"
 
57
#include "GraphicsCache.h"
 
58
#include "GraphicsLoader.h"
 
59
 
 
60
#include "ucompose.hpp"
58
61
 
59
62
#include "glade-helpers.h"
60
63
 
123
126
    xml->get_widget("edit_tileset_info_menuitem", edit_tileset_info_menuitem);
124
127
    edit_tileset_info_menuitem->signal_activate().connect
125
128
      (sigc::mem_fun(this, &TileSetWindow::on_edit_tileset_info_activated));
 
129
    xml->get_widget("army_unit_selector_menuitem", army_unit_selector_menuitem);
 
130
    army_unit_selector_menuitem->signal_activate().connect
 
131
      (sigc::mem_fun(this, &TileSetWindow::on_army_unit_selector_activated));
126
132
    xml->get_widget("preview_tile_menuitem", preview_tile_menuitem);
127
133
    preview_tile_menuitem->signal_activate().connect
128
134
      (sigc::mem_fun(this, &TileSetWindow::on_preview_tile_activated));
211
217
    {
212
218
      save_tileset_as_menuitem->set_sensitive(false);
213
219
      save_tileset_menuitem->set_sensitive(false);
 
220
      army_unit_selector_menuitem->set_sensitive(false);
214
221
    }
215
222
  else
216
223
    {
217
224
      save_tileset_as_menuitem->set_sensitive(true);
218
225
      save_tileset_menuitem->set_sensitive(true);
 
226
      army_unit_selector_menuitem->set_sensitive(true);
219
227
    }
220
228
}
221
229
 
307
315
  if (height)
308
316
    {
309
317
      d_tileset->setTileSize(height);
310
 
      t->instantiatePixmaps(t->getSubDir(), height);
 
318
      GraphicsLoader::instantiatePixmaps(t, d_tileset->getTileSize());
311
319
    }
312
320
  inhibit_image_change = true;
313
321
  image_filechooser_button->set_filename(n);
509
517
      //hackus horribilium
510
518
      std::string back = "../../../../../../../../../../../../../../../../";
511
519
      d_tileset->setSubDir(back + dir);
512
 
      d_tileset->instantiatePixmaps();
 
520
      GraphicsLoader::instantiatePixmaps(d_tileset);
513
521
      for (Tileset::iterator i = d_tileset->begin(); i != d_tileset->end(); ++i)
514
522
        {
515
523
          Gtk::TreeIter l = tiles_list->append();
597
605
  dialog->set_transient_for(*window.get());
598
606
 
599
607
  dialog->set_version(PACKAGE_VERSION);
600
 
  SDL_Surface *logo = File::getMiscPicture("tileset_icon.png");
 
608
  SDL_Surface *logo = GraphicsLoader::getMiscPicture("tileset_icon.png");
601
609
  dialog->set_logo(to_pixbuf(logo));
602
610
  dialog->show_all();
603
611
  dialog->run();
608
616
void TileSetWindow::on_sdl_surface_changed()
609
617
{
610
618
  if (!sdl_inited) {
 
619
    GraphicsLoader::instantiatePixmaps(Tilesetlist::getInstance());
611
620
    sdl_inited = true;
612
621
    sdl_initialized.emit();
613
622
  }
663
672
  tile_name_entry->set_text(tile->getName());
664
673
  tile_type_combobox->set_active(tile->getTypeIndex());
665
674
  tile_moves_spinbutton->set_value(tile->getMoves());
666
 
  tile_smallmap_pattern_combobox->set_active(tile->getPattern());
 
675
  tile_smallmap_pattern_combobox->set_active(tile->getSmallTile()->getPattern());
667
676
  tile_smallmap_first_colorbutton->set_sensitive(true);
668
677
  fill_tilestylesets();
669
678
  fill_colours(tile);
726
735
      sdl.r = c.get_red() / 255;
727
736
      sdl.g = c.get_green() / 255;
728
737
      sdl.b = c.get_blue() / 255;
729
 
      t->setColor(sdl);
 
738
      t->getSmallTile()->setColor(sdl);
730
739
      fill_tile_smallmap(t);
731
740
    }
732
741
}
746
755
      sdl.r = c.get_red() / 255;
747
756
      sdl.g = c.get_green() / 255;
748
757
      sdl.b = c.get_blue() / 255;
749
 
      t->setSecondColor(sdl);
 
758
      t->getSmallTile()->setSecondColor(sdl);
750
759
      fill_tile_smallmap(t);
751
760
    }
752
761
}
766
775
      sdl.r = c.get_red() / 255;
767
776
      sdl.g = c.get_green() / 255;
768
777
      sdl.b = c.get_blue() / 255;
769
 
      t->setThirdColor(sdl);
 
778
      t->getSmallTile()->setThirdColor(sdl);
770
779
      fill_tile_smallmap(t);
771
780
    }
772
781
}
775
784
{
776
785
  Gdk::Color c;
777
786
  SDL_Color sdl;
778
 
  switch (tile->getPattern())
 
787
  switch (tile->getSmallTile()->getPattern())
779
788
    {
780
 
    case Tile::SOLID:
 
789
    case SmallTile::SOLID:
781
790
      tile_smallmap_second_colorbutton->set_sensitive(false);
782
791
      tile_smallmap_third_colorbutton->set_sensitive(false);
783
 
      sdl = tile->getColor();
 
792
      sdl = tile->getSmallTile()->getColor();
784
793
      c.set_red(sdl.r * 255); c.set_green(sdl.g * 255); c.set_blue(sdl.b * 255);
785
794
      tile_smallmap_first_colorbutton->set_color(c);
786
795
      break;
787
 
    case Tile::STIPPLED: case Tile::SUNKEN:
 
796
    case SmallTile::STIPPLED: case SmallTile::SUNKEN:
788
797
      tile_smallmap_second_colorbutton->set_sensitive(true);
789
798
      tile_smallmap_third_colorbutton->set_sensitive(false);
790
 
      sdl = tile->getColor();
 
799
      sdl = tile->getSmallTile()->getColor();
791
800
      c.set_red(sdl.r * 255); c.set_green(sdl.g * 255); c.set_blue(sdl.b * 255);
792
801
      tile_smallmap_first_colorbutton->set_color(c);
793
 
      sdl = tile->getSecondColor();
 
802
      sdl = tile->getSmallTile()->getSecondColor();
794
803
      c.set_red(sdl.r * 255); c.set_green(sdl.g * 255); c.set_blue(sdl.b * 255);
795
804
      tile_smallmap_second_colorbutton->set_color(c);
796
805
      break;
797
 
    case Tile::RANDOMIZED: case Tile::TABLECLOTH:
 
806
    case SmallTile::RANDOMIZED: case SmallTile::TABLECLOTH: case SmallTile::DIAGONAL: case SmallTile::CROSSHATCH: case SmallTile::SUNKEN_STRIPED:
798
807
      tile_smallmap_second_colorbutton->set_sensitive(true);
799
808
      tile_smallmap_third_colorbutton->set_sensitive(true);
800
 
      sdl = tile->getColor();
 
809
      sdl = tile->getSmallTile()->getColor();
801
810
      c.set_red(sdl.r * 255); c.set_green(sdl.g * 255); c.set_blue(sdl.b * 255);
802
811
      tile_smallmap_first_colorbutton->set_color(c);
803
 
      sdl = tile->getSecondColor();
 
812
      sdl = tile->getSmallTile()->getSecondColor();
804
813
      c.set_red(sdl.r * 255); c.set_green(sdl.g * 255); c.set_blue(sdl.b * 255);
805
814
      tile_smallmap_second_colorbutton->set_color(c);
806
 
      sdl = tile->getThirdColor();
 
815
      sdl = tile->getSmallTile()->getThirdColor();
807
816
      c.set_red(sdl.r * 255); c.set_green(sdl.g * 255); c.set_blue(sdl.b * 255);
808
817
      tile_smallmap_third_colorbutton->set_color(c);
809
818
      break;
820
829
      Gtk::TreeModel::Row row = *iterrow;
821
830
      Tile *t = row[tiles_columns.tile];
822
831
      int idx = tile_smallmap_pattern_combobox->get_active_row_number();
823
 
      Tile::Pattern pattern = Tile::Pattern(idx);
824
 
      t->setPattern(pattern);
 
832
      SmallTile::Pattern pattern = SmallTile::Pattern(idx);
 
833
      t->getSmallTile()->setPattern(pattern);
825
834
      fill_colours(t);
826
835
      fill_tile_smallmap(t);
827
836
    }
867
876
          else if (j == 32 - 1)
868
877
            shadowed = true;
869
878
          OverviewMap::draw_tile_pixel (tile_smallmap_surface, 
870
 
                                        tile->getPattern(),
871
 
                                        tile->getColor(),
872
 
                                        tile->getSecondColor(),
873
 
                                        tile->getThirdColor(),
 
879
                                        tile->getSmallTile()->getPattern(),
 
880
                                        tile->getSmallTile()->getColor(),
 
881
                                        tile->getSmallTile()->getSecondColor(),
 
882
                                        tile->getSmallTile()->getThirdColor(),
874
883
                                        i, j, shadowed);
875
884
        }
876
885
    }
1061
1070
void TileSetWindow::on_refresh_clicked()
1062
1071
{
1063
1072
  TileStyleSet *set = get_selected_tilestyleset ();
1064
 
  set->instantiatePixmaps(set->getSubDir(), d_tileset->getTileSize());
 
1073
  GraphicsLoader::instantiatePixmaps(set, d_tileset->getTileSize());
1065
1074
}
1066
1075
 
1067
1076
void TileSetWindow::on_preview_tile_activated()
1073
1082
      d.run();
1074
1083
    }
1075
1084
}
 
1085
      
 
1086
void TileSetWindow::on_army_unit_selector_activated()
 
1087
{
 
1088
  TilesetSelectorEditorDialog d(d_tileset);
 
1089
  d.run();
 
1090
}