Changeset d7ebb04002b10e3f35f2ea7459937c7f19c12942

Show
Ignore:
Timestamp:
08/05/08 16:22:09 (4 years ago)
Author:
Gabriel Falcão <gabriel@…>
Children:
ea35bd52bc71644dba1fac27bbff6289b7dcce05
Parents:
25ef8a807d9296b650544eeed1f0c23f2601e41b
git-committer:
Gabriel Falcão <gabriel@…> (08/05/08 16:22:09)
Message:

Adding easy resizing feature

Files:
4 modified

Legend:

Unmodified
Added
Removed
  • ChangeLog

    r25ef8a8 rd7ebb04  
     12008-08-05  Gabriel Falcão <gabriel@nacaolivre.org> 
     2 
     3        * src/guake.py: Now guake can be resized with a resizer :) 
     4        * data/guake.glade: Adding a GtkHPaned as resizer for guake 
     5        * data/guake.schemas: Adding two new boolean keys: show_toolbar and show_resizer 
     6 
    172008-08-04  Lincoln de Sousa  <lincoln@minaslivre.org> 
    28 
  • data/guake.glade

    rb71e795 rd7ebb04  
    3030          <widget class="GtkHBox" id="toolbar"> 
    3131            <property name="visible">True</property> 
     32            <property name="events">GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_MOTION_MASK | GDK_BUTTON1_MOTION_MASK | GDK_BUTTON2_MOTION_MASK | GDK_BUTTON3_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_FOCUS_CHANGE_MASK | GDK_STRUCTURE_MASK | GDK_PROPERTY_CHANGE_MASK | GDK_VISIBILITY_NOTIFY_MASK | GDK_PROXIMITY_IN_MASK | GDK_PROXIMITY_OUT_MASK | GDK_SUBSTRUCTURE_MASK | GDK_SCROLL_MASK</property> 
     33            <property name="extension_events">GDK_EXTENSION_EVENTS_ALL</property> 
    3234            <child> 
    3335              <widget class="GtkImage" id="image1"> 
     
    7880          </packing> 
    7981        </child> 
     82        <child> 
     83          <widget class="GtkVPaned" id="resizer"> 
     84            <property name="visible">True</property> 
     85            <property name="can_focus">True</property> 
     86            <property name="no_show_all">True</property> 
     87            <child> 
     88              <widget class="GtkFixed" id="fixed1"> 
     89                <property name="visible">True</property> 
     90              </widget> 
     91              <packing> 
     92                <property name="resize">False</property> 
     93                <property name="shrink">True</property> 
     94              </packing> 
     95            </child> 
     96            <child> 
     97              <widget class="GtkFixed" id="fixed2"> 
     98                <property name="visible">True</property> 
     99              </widget> 
     100              <packing> 
     101                <property name="resize">True</property> 
     102                <property name="shrink">True</property> 
     103              </packing> 
     104            </child> 
     105          </widget> 
     106          <packing> 
     107            <property name="expand">False</property> 
     108            <property name="position">2</property> 
     109          </packing> 
     110        </child> 
    80111      </widget> 
    81112    </child> 
  • data/guake.schemas

    r570fd9b rd7ebb04  
    317317        </schema> 
    318318 
     319        <schema> 
     320            <key>/schemas/apps/guake/general/show_resizer</key> 
     321            <applyto>/apps/guake/general/show_resizer</applyto> 
     322            <owner>guake</owner> 
     323            <type>bool</type> 
     324            <default>true</default> 
     325            <locale name="C"> 
     326                <short>If guake must show a control to make resizing more handful</short> 
     327                <long>When true, guake shows a resizer on its bottom to allow user  
     328                resize guake.</long> 
     329            </locale> 
     330        </schema> 
     331 
     332        <schema> 
     333            <key>/schemas/apps/guake/general/show_toolbar</key> 
     334            <applyto>/apps/guake/general/show_toolbar</applyto> 
     335            <owner>guake</owner> 
     336            <type>bool</type> 
     337            <default>true</default> 
     338            <locale name="C"> 
     339                <short>If the tabs bar must be visible</short> 
     340                <long>When true, the tabs bar is visible</long> 
     341            </locale> 
     342        </schema> 
    319343    </schemalist> 
    320344</gconfschemafile> 
  • src/guake.py

    rf2e67a5 rd7ebb04  
    623623        self.toolbar = self.get_widget('toolbar') 
    624624        self.mainframe = self.get_widget('mainframe') 
     625        self.resizer = self.get_widget('resizer') 
    625626 
    626627        # List of vte.Terminal widgets, it will be useful when needed 
     
    653654        self.window.set_geometry_hints(min_width=1, min_height=1) 
    654655        self.window.connect('focus-out-event', self.on_window_lostfocus) 
     656 
     657        # resizer stuff 
     658        self.resizer.connect('motion-notify-event', self.on_resizer_drag) 
     659             
    655660        self.get_widget('context-menu').set_accel_group(self.accel_group) 
    656661 
     
    661666        self.add_tab() 
    662667        self.toggle_ontop() 
     668 
     669    def on_resizer_drag(self, widget, event): 
     670        (x, y), mod = event.device.get_state(widget.window) 
     671 
     672        max_height = self.window.get_screen().get_height() 
     673        percent = y / (max_height / 100) 
     674         
     675        if percent < 1: 
     676            percent = 1 
     677             
     678        if int(mod) > 1: 
     679            self.client.set_int(GCONF_PATH + 'general/window_size', int(percent)) 
     680            self.resize(*self.get_final_window_size()) 
    663681 
    664682    def on_window_lostfocus(self,window, event): 
     
    673691        self.window.show_all() 
    674692        self.window.hide() 
     693        show_resizer = self.client.get_bool(GCONF_PATH+'general/show_resizer') 
     694        if not show_resizer: 
     695            self.resizer.hide() 
    675696 
    676697    def show_menu(self, *args): 
     
    749770        width = self.window.get_screen().get_width() 
    750771        height = self.client.get_int(GCONF_PATH+'general/window_size') 
     772        # avoiding X Window system error 
     773        max_height = self.window.get_screen().get_height() 
     774 
     775        if height > max_height: 
     776            height = max_height 
     777 
    751778        return width, height 
    752779