[Add] resedit: SaraCraft presents... The new planet editor!

This commit is contained in:
Allanis 2013-04-16 13:10:39 +01:00
parent 9deddc9cd9
commit 081449b5ea
3 changed files with 477 additions and 2 deletions

View File

@ -180,8 +180,8 @@
</child> </child>
<child> <child>
<widget class="GtkDrawingArea" id="draSpace"> <widget class="GtkDrawingArea" id="draSpace">
<property name="width_request">296</property> <property name="width_request">300</property>
<property name="height_request">248</property> <property name="height_request">250</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
</widget> </widget>
@ -420,4 +420,467 @@
</widget> </widget>
</child> </child>
</widget> </widget>
<widget class="GtkWindow" id="winPlanets">
<property name="width_request">600</property>
<property name="height_request">450</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<child>
<widget class="GtkHPaned" id="hpaned2">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<child>
<widget class="GtkTreeView" id="trePlanets">
<property name="width_request">150</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="headers_clickable">True</property>
</widget>
<packing>
<property name="resize">False</property>
<property name="shrink">True</property>
</packing>
</child>
<child>
<widget class="GtkLayout" id="layout2">
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<child>
<widget class="GtkButton" id="butNew">
<property name="width_request">70</property>
<property name="height_request">37</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="label" translatable="yes">New</property>
<property name="response_id">0</property>
</widget>
<packing>
<property name="x">17</property>
<property name="y">12</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label5">
<property name="width_request">80</property>
<property name="height_request">20</property>
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="label" translatable="yes">Name:</property>
</widget>
<packing>
<property name="x">94</property>
<property name="y">21</property>
</packing>
</child>
<child>
<widget class="GtkEntry" id="inpName">
<property name="width_request">121</property>
<property name="height_request">20</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
</widget>
<packing>
<property name="x">160</property>
<property name="y">19</property>
</packing>
</child>
<child>
<widget class="GtkComboBox" id="comFaction">
<property name="width_request">129</property>
<property name="height_request">29</property>
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
</widget>
<packing>
<property name="x">80</property>
<property name="y">58</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label6">
<property name="width_request">88</property>
<property name="height_request">20</property>
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="label" translatable="yes">Faction</property>
</widget>
<packing>
<property name="y">62</property>
</packing>
</child>
<child>
<widget class="GtkHSeparator" id="hseparator4">
<property name="width_request">404</property>
<property name="height_request">20</property>
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
</widget>
<packing>
<property name="x">11</property>
<property name="y">94</property>
</packing>
</child>
<child>
<widget class="GtkTreeView" id="treCommodities">
<property name="width_request">188</property>
<property name="height_request">166</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="headers_clickable">True</property>
</widget>
<packing>
<property name="x">16</property>
<property name="y">116</property>
</packing>
</child>
<child>
<widget class="GtkComboBox" id="comCommodities">
<property name="width_request">189</property>
<property name="height_request">24</property>
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
</widget>
<packing>
<property name="x">15</property>
<property name="y">287</property>
</packing>
</child>
<child>
<widget class="GtkButton" id="butComAdd">
<property name="width_request">86</property>
<property name="height_request">38</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="label" translatable="yes">Add</property>
<property name="response_id">0</property>
</widget>
<packing>
<property name="x">15</property>
<property name="y">318</property>
</packing>
</child>
<child>
<widget class="GtkButton" id="butComRm">
<property name="width_request">88</property>
<property name="height_request">40</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="label" translatable="yes">Remove</property>
<property name="response_id">0</property>
</widget>
<packing>
<property name="x">115</property>
<property name="y">316</property>
</packing>
</child>
<child>
<widget class="GtkVSeparator" id="vseparator2">
<property name="width_request">20</property>
<property name="height_request">255</property>
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
</widget>
<packing>
<property name="x">209</property>
<property name="y">110</property>
</packing>
</child>
<child>
<widget class="GtkHSeparator" id="hseparator5">
<property name="width_request">408</property>
<property name="height_request">20</property>
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
</widget>
<packing>
<property name="x">7</property>
<property name="y">360</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label7">
<property name="width_request">100</property>
<property name="height_request">20</property>
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="label" translatable="yes">Services</property>
</widget>
<packing>
<property name="x">232</property>
<property name="y">115</property>
</packing>
</child>
<child>
<widget class="GtkCheckButton" id="cheLand">
<property name="width_request">73</property>
<property name="height_request">20</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="label" translatable="yes">Land</property>
<property name="response_id">0</property>
<property name="draw_indicator">True</property>
</widget>
<packing>
<property name="x">240</property>
<property name="y">145</property>
</packing>
</child>
<child>
<widget class="GtkCheckButton" id="cheBasic">
<property name="width_request">70</property>
<property name="height_request">20</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="label" translatable="yes">Basic</property>
<property name="response_id">0</property>
<property name="draw_indicator">True</property>
</widget>
<packing>
<property name="x">320</property>
<property name="y">145</property>
</packing>
</child>
<child>
<widget class="GtkCheckButton" id="cheCommodity">
<property name="width_request">112</property>
<property name="height_request">20</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="label" translatable="yes">Commodity</property>
<property name="response_id">0</property>
<property name="draw_indicator">True</property>
</widget>
<packing>
<property name="x">240</property>
<property name="y">170</property>
</packing>
</child>
<child>
<widget class="GtkCheckButton" id="cheOutfits">
<property name="width_request">80</property>
<property name="height_request">20</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="label" translatable="yes">Outfits</property>
<property name="response_id">0</property>
<property name="draw_indicator">True</property>
</widget>
<packing>
<property name="x">240</property>
<property name="y">195</property>
</packing>
</child>
<child>
<widget class="GtkCheckButton" id="cheShipyard">
<property name="width_request">100</property>
<property name="height_request">20</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="label" translatable="yes">Shipyard</property>
<property name="response_id">0</property>
<property name="draw_indicator">True</property>
</widget>
<packing>
<property name="x">320</property>
<property name="y">195</property>
</packing>
</child>
<child>
<widget class="GtkHSeparator" id="hseparator6">
<property name="width_request">191</property>
<property name="height_request">20</property>
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
</widget>
<packing>
<property name="x">221</property>
<property name="y">217</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label8">
<property name="width_request">57</property>
<property name="height_request">20</property>
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="label" translatable="yes">Tech</property>
</widget>
<packing>
<property name="x">246</property>
<property name="y">238</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label9">
<property name="width_request">63</property>
<property name="height_request">20</property>
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="label" translatable="yes">Main</property>
</widget>
<packing>
<property name="x">222</property>
<property name="y">260</property>
</packing>
</child>
<child>
<widget class="GtkSpinButton" id="spinbutton1">
<property name="width_request">72</property>
<property name="height_request">20</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="adjustment">0 0 100000 1 10 10</property>
</widget>
<packing>
<property name="x">272</property>
<property name="y">260</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label10">
<property name="width_request">67</property>
<property name="height_request">20</property>
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="label" translatable="yes">Special</property>
</widget>
<packing>
<property name="x">225</property>
<property name="y">290</property>
</packing>
</child>
<child>
<widget class="GtkSpinButton" id="spiTech1">
<property name="width_request">60</property>
<property name="height_request">20</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="adjustment">0 0 100000 1 10 10</property>
</widget>
<packing>
<property name="x">235</property>
<property name="y">315</property>
</packing>
</child>
<child>
<widget class="GtkSpinButton" id="spiTech2">
<property name="width_request">60</property>
<property name="height_request">20</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="adjustment">0 0 100000 1 10 10</property>
</widget>
<packing>
<property name="x">300</property>
<property name="y">315</property>
</packing>
</child>
<child>
<widget class="GtkSpinButton" id="spiTech3">
<property name="width_request">60</property>
<property name="height_request">20</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="adjustment">0 0 100000 1 10 10</property>
</widget>
<packing>
<property name="x">235</property>
<property name="y">340</property>
</packing>
</child>
<child>
<widget class="GtkSpinButton" id="spiTech4">
<property name="width_request">60</property>
<property name="height_request">20</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="adjustment">0 0 100 1 10 10</property>
</widget>
<packing>
<property name="x">300</property>
<property name="y">340</property>
</packing>
</child>
<child>
<widget class="GtkComboBox" id="comSystem">
<property name="width_request">160</property>
<property name="height_request">25</property>
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
</widget>
<packing>
<property name="x">12</property>
<property name="y">400</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label11">
<property name="width_request">100</property>
<property name="height_request">20</property>
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="label" translatable="yes">System</property>
</widget>
<packing>
<property name="y">378</property>
</packing>
</child>
<child>
<widget class="GtkButton" id="butSave">
<property name="width_request">100</property>
<property name="height_request">50</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="label" translatable="yes">Save</property>
<property name="response_id">0</property>
</widget>
<packing>
<property name="x">190</property>
<property name="y">377</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label12">
<property name="width_request">62</property>
<property name="height_request">20</property>
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="label" translatable="yes">Class</property>
</widget>
<packing>
<property name="x">227</property>
<property name="y">60</property>
</packing>
</child>
</widget>
<packing>
<property name="resize">True</property>
<property name="shrink">True</property>
</packing>
</child>
</widget>
</child>
</widget>
</glade-interface> </glade-interface>

View File

@ -48,6 +48,7 @@ class space:
hooks = { hooks = {
"winSystems":["destroy",self.__done], "winSystems":["destroy",self.__done],
"treSystems":["button-release-event", self.__update], "treSystems":["button-release-event", self.__update],
"inpName":["changed", self.__update],
"butDone":["clicked", self.__done], "butDone":["clicked", self.__done],
"butSave":["clicked",self.saveSystems], "butSave":["clicked",self.saveSystems],
"butZoomIn":["clicked", self.__space_zoomin], "butZoomIn":["clicked", self.__space_zoomin],
@ -66,6 +67,7 @@ class space:
self.zoom = 1 self.zoom = 1
self.space_sel = "" self.space_sel = ""
area = self.__swidget("draSpace") area = self.__swidget("draSpace")
area.set_double_buffered(True)
area.set_events(gtk.gdk.EXPOSURE_MASK area.set_events(gtk.gdk.EXPOSURE_MASK
| gtk.gdk.LEAVE_NOTIFY_MASK | gtk.gdk.LEAVE_NOTIFY_MASK
| gtk.gdk.BUTTON_PRESS_MASK | gtk.gdk.BUTTON_PRESS_MASK
@ -83,6 +85,10 @@ class space:
# ---------------- PLANETS -------------------- # ---------------- PLANETS --------------------
self.pwtree = gtk.glade.XML(self.glade, "winPlanets")
self.__pwidget("winPlanets").show_all()
self.cur_planet = ""
# --------------------------------------------- # ---------------------------------------------
gtk.main() gtk.main()
@ -109,6 +115,9 @@ class space:
""" """
return self.swtree.get_widget(wgtname) return self.swtree.get_widget(wgtname)
def __pwidget(self, wgtname):
return self.pwtree.get_widget(wgtname)
def __update(self, wgt=None, index=None, iter=None): def __update(self, wgt=None, index=None, iter=None):
""" """
Update the window Update the window
@ -360,6 +369,9 @@ class space:
layout = area.create_pango_layout(sys_name) layout = area.create_pango_layout(sys_name)
area.window.draw_layout(gc, dx+r/2+2, dy-r/2, layout) area.window.draw_layout(gc, dx+r/2+2, dy-r/2, layout)
# Draw the frame at the end.
area.window.draw_rectangle(sys_gc, False, 0, 0, ww-1, wh-1)
def __jump_add(self, wgt=None, event=None): def __jump_add(self, wgt=None, event=None):
if self.space_sel in self.systems.keys() and self.cur_system in self.systems.keys(): if self.space_sel in self.systems.keys() and self.cur_system in self.systems.keys():
self.systems[self.cur_system]["jumps"].append(self.space_sel) self.systems[self.cur_system]["jumps"].append(self.space_sel)

Binary file not shown.