Class: AGTkObjPlace

Inherits:
Object
  • Object
show all
Defined in:
lib/a-tkcommons.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(_obj = nil, _side = 'both', _cursor = nil, _bind = true) ⇒ AGTkObjPlace

Returns a new instance of AGTkObjPlace.



93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
# File 'lib/a-tkcommons.rb', line 93

def initialize(_obj=nil , _side='both' , _cursor=nil, _bind = true )
  if !_obj
    return
  end
  @obj = _obj
  if !_cursor
    case _side
    when 'x'
      _cursor = 'sb_h_double_arrow'
    when 'y'
      _cursor = 'sb_v_double_arrow'
    when 'both'
      _cursor = 'draft_small'
    end
  end
  @motion = false
  @side = _side
  @x0 = TkPlace.info(@obj)['x']
  @y0 = TkPlace.info(@obj)['y']
  if TkWinfo.mapped?(@obj)
    @w0=TkWinfo.width(@obj)
    @h0=TkWinfo.height(@obj)
  else
    @w0=TkWinfo.reqwidth(@obj)
    @h0=TkWinfo.reqheight(@obj)
  end
  @start_x = @x0
  @start_y = @y0
  @cursor = _cursor
  if _bind
    @obj.bind_append("Enter", proc{|x, y| do_enter(x, y)}, "%x %y")
    @obj.bind_append("ButtonPress-1", proc{|e| do_press(e.x, e.y)})
    @obj.bind_append("B1-Motion", proc{|x, y| do_motion(x,y)},"%x %y")
  end
end

Instance Attribute Details

#h0Object (readonly)

Returns the value of attribute h0.



90
91
92
# File 'lib/a-tkcommons.rb', line 90

def h0
  @h0
end

#heightObject

Returns the value of attribute height.



90
91
92
# File 'lib/a-tkcommons.rb', line 90

def height
  @height
end

#motionObject

Returns the value of attribute motion.



90
91
92
# File 'lib/a-tkcommons.rb', line 90

def motion
  @motion
end

#objObject (readonly)

Returns the value of attribute obj.



90
91
92
# File 'lib/a-tkcommons.rb', line 90

def obj
  @obj
end

#rObject

Returns the value of attribute r.



90
91
92
# File 'lib/a-tkcommons.rb', line 90

def r
  @r
end

#relheightObject

Returns the value of attribute relheight.



90
91
92
# File 'lib/a-tkcommons.rb', line 90

def relheight
  @relheight
end

#relwidthObject

Returns the value of attribute relwidth.



90
91
92
# File 'lib/a-tkcommons.rb', line 90

def relwidth
  @relwidth
end

#start_xObject

Returns the value of attribute start_x.



90
91
92
# File 'lib/a-tkcommons.rb', line 90

def start_x
  @start_x
end

#start_yObject

Returns the value of attribute start_y.



90
91
92
# File 'lib/a-tkcommons.rb', line 90

def start_y
  @start_y
end

#w0Object (readonly)

Returns the value of attribute w0.



90
91
92
# File 'lib/a-tkcommons.rb', line 90

def w0
  @w0
end

#widthObject

Returns the value of attribute width.



90
91
92
# File 'lib/a-tkcommons.rb', line 90

def width
  @width
end

#x0Object (readonly)

Returns the value of attribute x0.



90
91
92
# File 'lib/a-tkcommons.rb', line 90

def x0
  @x0
end

#y0Object (readonly)

Returns the value of attribute y0.



90
91
92
# File 'lib/a-tkcommons.rb', line 90

def y0
  @y0
end

Instance Method Details

#amove(_x, _y) ⇒ Object



179
180
181
# File 'lib/a-tkcommons.rb', line 179

def amove(_x,_y)
  move(_x - @x0 , _y - @y0)
end

#do_enter(x, y) ⇒ Object



145
146
147
148
# File 'lib/a-tkcommons.rb', line 145

def do_enter(x, y)
  @oldcursor = @obj.cget('cursor')
  @obj.configure('cursor'=> @cursor)
end

#do_leaveObject



150
151
152
# File 'lib/a-tkcommons.rb', line 150

def do_leave
  @obj.configure('cursor'=>@oldcursor)
end

#do_motion(_x, _y) ⇒ Object



159
160
161
162
# File 'lib/a-tkcommons.rb', line 159

def do_motion( _x, _y)
  @motion = true
  move(_x - @start_x, _y - @start_y)
end

#do_press(x, y) ⇒ Object



154
155
156
157
# File 'lib/a-tkcommons.rb', line 154

def do_press(x, y)
  @start_x = x
  @start_y = y
end

#go(_w, _h) ⇒ Object



183
184
185
186
187
188
189
190
191
192
# File 'lib/a-tkcommons.rb', line 183

def go(_w, _h)
  case @side
  when 'x'
    @w0 = _w
    @obj.place('width' => @w0, 'height'=>@height, 'relwidth'=>@relwidth, 'relheight'=>@relheight)
  when 'y'
    @h0 = _h
    @obj.place('height' => @h0, 'width' => @width, 'relwidth'=>@relwidth, 'relheight'=>@relheight)
  end
end

#hObject



137
138
139
140
141
142
143
# File 'lib/a-tkcommons.rb', line 137

def h
  if TkWinfo.mapped?(@obj)
    @h0= TkWinfo.height(@obj)
  else
    @h0= TkWinfo.reqheight(@obj)
  end
end

#move(_x, _y) ⇒ Object



164
165
166
167
168
169
170
171
172
173
174
175
176
177
# File 'lib/a-tkcommons.rb', line 164

def move(_x,_y)
  case @side
  when 'both'
    @x0 = @x0 + _x  if (@x0 + _x) >= 0
    @y0 = @y0 + _y
    @obj.place('x' => @x0, 'y' => @y0, 'width' => @width, 'height'=>@height, 'relwidth'=>@relwidth, 'relheight'=>@relheight)
  when 'x'
    @x0 = @x0 + _x  if (@x0 + _x) >= 0
    @obj.place('x' => @x0, 'width' => @width, 'height'=>@height, 'relwidth'=>@relwidth, 'relheight'=>@relheight)
  when 'y'
    @y0 = @y0 + _y
    @obj.place('y' => @y0, 'width' => @width, 'height'=>@height, 'relwidth'=>@relwidth, 'relheight'=>@relheight)
  end
end

#wObject



129
130
131
132
133
134
135
# File 'lib/a-tkcommons.rb', line 129

def w
  if TkWinfo.mapped?(@obj)
    @w0= TkWinfo.width(@obj)
  else
    @w0= TkWinfo.reqwidth(@obj)
  end
end