From 34b306bf1bb7263d79421d0a99b9d81f0aea18b6 Mon Sep 17 00:00:00 2001 From: Allanis <allanis@saracraft.net> Date: Sat, 13 Apr 2013 19:40:18 +0100 Subject: [PATCH] [Add] Made resedit a little prettier. --- utils/resedit/space.py | 65 ++++++++++++++++++++++++++++++---------- utils/resedit/space.pyc | Bin 10533 -> 11155 bytes 2 files changed, 50 insertions(+), 15 deletions(-) diff --git a/utils/resedit/space.py b/utils/resedit/space.py index 212381e..4eead70 100644 --- a/utils/resedit/space.py +++ b/utils/resedit/space.py @@ -69,7 +69,9 @@ class space: col.add_attribute(cell, 'text', 0) self.__swidget("treSystems").set_model(self.tree_systems) + # Custom widget drawing area thingy. self.zoom = 1 + self.space_sel = "" area = self.__swidget("draSpace") area.set_events(gtk.gdk.EXPOSURE_MASK | gtk.gdk.LEAVE_NOTIFY_MASK @@ -187,8 +189,11 @@ class space: # Important thingies. tree = self.__swidget("treSystems") model = tree.get_model() - iter = tree.get_selection().get_selected()[1] - p = model.iter_parent(iter) + try: + iter = tree.get_selection().get_selected()[1] + p = model.iter_parent(iter) + except: + return None if p == None: return model.get_value(iter, 0) else: @@ -202,6 +207,7 @@ class space: def __space_reset(self, wgt=None, event=None): self.x = self.y = 0 + self.space_sel = "" self.__space_draw() def __space_down(self, wgt, event): @@ -209,20 +215,29 @@ class space: x = event.x y = event.y + wx, wy, ww, wh = self.__swidget("draSpace").get_allocation() + mx = x - (self.x*self.zoom + ww/2) + my = y - (self.y*self.zoom + wh/2) + # Modify the current position. if self.__swidget("butReposition").get_active() and self.cur_system != "": - wx, wy, ww, wh = self.__swidget("draSpace").get_allocation() - - mx = x - (self.x*self.zoom + ww/2) - my = y - (self.y*self.zoom + wh/2) - system = self.systems[self.cur_system] - system["pos"]["x"] = str(mx) - system["pos"]["y"] = str(-my) + system["pos"]["x"] = str(int(mx)) + system["pos"]["y"] = str(int(-my)) self.__space_draw() self.__swidget("butReposition").set_active(False) + else: + r = 15 + for name, sys in self.systems.items(): + sx = int(sys["pos"]["x"]) + sy = -int(sys["pos"]["y"]) + + if abs(sx-mx) < r and abs(sy-my) < r: + self.space_sel = name + self.__space_draw() + break self.lx = x self.ly = y @@ -266,17 +281,28 @@ class space: def __space_draw(self, wgt=None, event=None): area = self.__swidget("draSpace") - style = area.get_style() - gc = style.fg_gc[gtk.STATE_NORMAL] - bg_gc = style.bg_gc[gtk.STATE_NORMAL] wx, wy, ww, wh = area.get_allocation() cx = self.x*self.zoom + ww/2 cy = self.y*self.zoom + wh/2 r = 15 + # Colour stuff. + sys_gc = area.window.new_gc() + col = area.get_colormap().alloc_color("yellow") + sys_gc.foreground = col + bg_gc = area.window.new_gc() + col = area.get_colormap().alloc_color("black") + bg_gc.foreground = col + jmp_gc = area.window.new_gc() + col = area.get_colormap().alloc_color("blue") + jmp_gc.foreground = col + sel_gc = area.window.new_gc() + col = area.get_colormap().alloc_color("red") + sel_gc.foreground = col + # Cleanup. area.window.draw_rectangle(bg_gc, True, 0, 0, ww, wh) - area.window.draw_rectangle(gc, False, 0, 0, ww-1, wh-1) + area.window.draw_rectangle(sys_gc, False, 0, 0, ww-1, wh-1) for sys_name, system in self.systems.items(): sx = int(system["pos"]["x"]) @@ -291,11 +317,20 @@ class space: jdx = int(cx+jsx*self.zoom) jdy = int(cy+jsy*self.zoom) - area.window.draw_line(gc, dx, dy, jdx, jdy) + area.window.draw_line(jmp_gc, dx, dy, jdx, jdy) # Draw circle. + if sys_name == self.space_sel: + gc = sel_gc + else: + gc = sys_gc + if sys_name == self.__curSystem(): + gc2 = jmp_gc + else: + gc2 = bg_gc + area.window.draw_arc(gc, True, dx-r/2, dy-r/2, r, r, 0, 360*64) - area.window.draw_arc(bg_gc, True, dx-r/2+2, dy-r/2+2, r-4, r-4, 0, 360*64) + area.window.draw_arc(gc2, True, dx-r/2+2, dy-r/2+2, r-4, r-4, 0, 360*64) # Draw name. layout = area.create_pango_layout(sys_name) diff --git a/utils/resedit/space.pyc b/utils/resedit/space.pyc index cdc9586bf3ca128c14fc41bf058821afd94da707..04156e656545c594022b9f4d99a5f1ffc139d424 100644 GIT binary patch delta 3123 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 PoRP&l5PwwOEPwESzabr) delta 2693 zcmaJ@Uu;ul6hGhX|36zxyRPj9V*|H!1A&PW6EQN}FbEsuZa4{>wY1&n=r&j{u$nd% z_kcbS(NBqQB8iD_s51tA^2NkIF~-E0m|*mQ#3z06%@;ktbK7ns(QNm3&pF@u&N<)t z&N;Vw>V4Dg_^ZYL*sYJ;WsiDg?Pbqhb*4fzAD~>ARuxr!RPoV#Cs{1qO7q(qL>C>d zi?%nZ?k3ekhk3KY)*$7!5KQi%RYSk#8#rW}S1>={ORGdG*9MJrALRn%1l2Ems>u%s zKPb+3X_x;e{hR-|mjfUgPwigY8z`%_PlI=r8qrIw`;?(?xBj8hYd1pA8}4UW$vme2 z+>%vCwHdjpM)i-8fgzK{mV+Tz$eJg?xEL;HikI@Hk0~<(m;g)yPU$_-lWKOY7QLrV zpMhi>LxCT%_48mA*t39XKnCyvU<U9aAkB~x5Br$1ybN=BD{bXhEc2-TBsLpGH0DKs z#DGZkaA;UBwg=R8{Zjk89VILtU`V+^2|&$U(EH;HYE8cv-_dn}1xP#}QIcI%RN<5} zO;k1X{dixX;-nnWd4raxbx&ecS$Zxp<6eQKCH+m}bmVg;ORWrKgj7(qtB`&o`Stvl z5E~FXv&doNc^dLA2KFcyDG{XEF~?!pcTF^r!q#!gT?$)G`;I`3GT1UX)Pla+kskV% zg(W8gsjw1<L8ftE;xNituNd`%;xHi{?d<Jd{#)F-DCeN_4yv;b$~mR<-1^bZ?wW_% zDjv$YC>Bqk*q!xI5ir)gjWxe4c<UyU)c{%28(hT|?iM#Ca~?VfnV$k1gkCxbTYfn_ zC=P%#!56_6f;CWTk>hv3a=N7+LAsS#XoWaeD3x(3EUSgdvzIJ0e_^RqunJ3yW*<w; zUWNivYGwh=WTwK*TF4`BvRJ#hVoK@xiE2`NnXFZ~oHvg`9hZ%I%oK}D*^D@Ol0{|+ zupfXcvUo3*pe9?TcaCI=rM!6@Dq{dxO5vjH`dk3@DxevLW$2H$4LF+xek;||yL4so zdsdPvA{A0T<#RlwdW@}Vs}WXhDrWeN<l42aA*FitXWM&g>()>ZB`ag)<#^_G_>$OB zX=Xp*DFzEM9X>TVd18DhJvKaXY(vaAn;kf!|Ifh9cd&W`5PJjoCO`w;0=%u4yJyw! z`sePO37Fhi(O5?sq@};=i5mZq{-vk<|9W?JL~1TB^Ag4dx&YlMozTI2fFJ3En_LB` zv1ZG2RXG|h&!z1|7xL7bcT%$I65iG1-J<J8p-wxg>Y=I^^S^3WzNc1ifHt1$T*0w8 zw*Y)`#WQ-jSNwH3k9-GJxs=(FA9Y@FBkA0C{Li~tan;RVhvqWJ(6YYF&6t2KenD;J z3k3(QHJT40wvm}TYTBS`D^){eg{cy1bYGHtsT$rW^Aco%>J|}lAgpc&8;5R0#6haq zUno9<h@-Tk#jKB#BQw{i+6KLvL_w7{?sU7`#a~QpAi(vdhTHar+t?<z@rK*>P2xl& zVH^$LO@t~@s>G?1pj8*Ci?uN|RZkf&amqMuCOC0?842h%NY1>S&K6qrHuKE7at#|c z@y_^$jl%NIAm`tH;mTU;MmYcMgE>xIvJonOxb0AF-|+`5R+6;p<k)|uDgMq(q%cIr z*XLCMynF`i59j9bC7;#8Ij;J`A=c9$^o46NChXybv4}ZUvdYE0%%9o0^jucjTsnMW za(HqyJ$}L*8$K@UXJuWcg3JsV4aZ<`ia`cnZaH%$y`0ZlnZ>zcUIu~rIy4Zdxt9{G z=U}q1Xz`@yE`xrtu$b4U`w!I6iVu#A=U67*?Km-|Imp}4l<~27dRSP`uGp`##Yd-Q z^9qzPBSl=YS4(B#ayFMM^G^l6Gqux?X<y8gmo8Z{Uv8zs9RbXZM_7(=8sym#RtfoY z>wBqA?HKq@?bAODoIHUv*rO9aEzDhjIlyJWIlv%b58w#k8NkDU-2j=McbQ7@g8_F) ie>m8geB9@W^!xgP9$z5j4mo`ZUxMH6P_Mo}c;{c)k<sq}