[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
gnue/designer/src base/MenuBar.py forms/Instanc...
From: |
Jason Cater |
Subject: |
gnue/designer/src base/MenuBar.py forms/Instanc... |
Date: |
Sun, 30 Mar 2003 12:17:00 -0500 |
CVSROOT: /cvsroot/gnue
Module name: gnue
Changes by: Jason Cater <address@hidden> 03/03/30 12:17:00
Modified files:
designer/src/base: MenuBar.py
designer/src/forms: Instance.py
designer/src/forms/LayoutEditor: DisplayDropTarget.py
LayoutEditor.py
WidgetHandler.py
WidgetHighlighter.py
Log message:
more work on selection logic on the layout editor
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/base/MenuBar.py.diff?tr1=1.37&tr2=1.38&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/forms/Instance.py.diff?tr1=1.34&tr2=1.35&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/forms/LayoutEditor/DisplayDropTarget.py.diff?tr1=1.10&tr2=1.11&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/forms/LayoutEditor/LayoutEditor.py.diff?tr1=1.64&tr2=1.65&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/forms/LayoutEditor/WidgetHandler.py.diff?tr1=1.10&tr2=1.11&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/forms/LayoutEditor/WidgetHighlighter.py.diff?tr1=1.5&tr2=1.6&r1=text&r2=text
Patches:
Index: gnue/designer/src/base/MenuBar.py
diff -c gnue/designer/src/base/MenuBar.py:1.37
gnue/designer/src/base/MenuBar.py:1.38
*** gnue/designer/src/base/MenuBar.py:1.37 Mon Feb 17 02:32:50 2003
--- gnue/designer/src/base/MenuBar.py Sun Mar 30 12:17:00 2003
***************
*** 186,192 ****
self._tools = wxMenu()
for location in self._toolMenuOrder:
!
if location == "":
self._tools.AppendSeparator()
continue
--- 186,192 ----
self._tools = wxMenu()
for location in self._toolMenuOrder:
!
if location == "":
self._tools.AppendSeparator()
continue
Index: gnue/designer/src/forms/Instance.py
diff -c gnue/designer/src/forms/Instance.py:1.34
gnue/designer/src/forms/Instance.py:1.35
*** gnue/designer/src/forms/Instance.py:1.34 Wed Mar 19 01:06:08 2003
--- gnue/designer/src/forms/Instance.py Sun Mar 30 12:17:00 2003
***************
*** 138,153 ****
def onModifyObject(self, event):
object = event.object
! # TODO: Maintain all those fun dicts/lists created in inventoryObject()
def onDeleteObject(self, event):
object = event.object
if object._type == 'GFPage':
self._pages.remove(object)
! # TODO: Maintain all those fun dicts/lists created in inventoryObject()
def createTools(self):
--- 138,181 ----
def onModifyObject(self, event):
+
object = event.object
!
! #
! # Maintain all those fun dicts/lists created in inventoryObject()
! #
! if object._type == 'GFBlock':
! try:
! del self.rootObject._blockMap[old['name']]
! except KeyError:
! pass
! self.rootObject._blockMap[object.name] = object
!
! elif object._type == 'GFField':
! block = object.findParentOfType('GFBlock')
! try:
! del block._fieldMap[old['name']]
! except KeyError:
! pass
! block._fieldMap[object.name] = object
def onDeleteObject(self, event):
+ print "Instance.onDeleteObject"
object = event.object
if object._type == 'GFPage':
self._pages.remove(object)
! # Maintain all those fun dicts/lists created in inventoryObject()
! if object._type == 'GFBlock':
! del self.rootObject._blockMap[object.name]
! elif object._type == 'GFField':
! del object.findParentOfType('GFBlock')._fieldMap[object.name]
! elif isinstance(object, GFObjects.GFPage) and \
! object._parent == self.rootObject:
! del self._pages[object]
!
! object._popupMenu = ObjectMenu(self, object)
def createTools(self):
***************
*** 205,221 ****
logic.append(child)
else:
other.append(child)
!
!
! if len(logic[0]._children):
valid = 1
! else:
! valid = 0
!
if not valid:
if wxMessageDialog(self,
_('The form definition you are about to save\n') +
! _('does not appear to be a working definition.') +
_('\n\nIf you save an incomplete definition, you\n') +
_('may not be able to reopen it in Designer.'),
_("Incomplete Form Definition"), wxYES_NO|wxICON_QUESTION
).ShowModal() == wxID_NO:
--- 233,250 ----
logic.append(child)
else:
other.append(child)
!
!
! # Do a little sanity check before saving...
! if len(logic[0]._children):
valid = 1
! else:
! valid = 0 # No blocks! :(
!
if not valid:
if wxMessageDialog(self,
_('The form definition you are about to save\n') +
! _('does not appear to be a workable definition.') +
_('\n\nIf you save an incomplete definition, you\n') +
_('may not be able to reopen it in Designer.'),
_("Incomplete Form Definition"), wxYES_NO|wxICON_QUESTION
).ShowModal() == wxID_NO:
***************
*** 251,258 ****
'block': self.visualEditor.block,
'object': self._currentObject}
- # # Hack having to do with UIwxpython import
- # def uiEventTrap(self, event):
- # pass
--- 280,284 ----
Index: gnue/designer/src/forms/LayoutEditor/DisplayDropTarget.py
diff -c gnue/designer/src/forms/LayoutEditor/DisplayDropTarget.py:1.10
gnue/designer/src/forms/LayoutEditor/DisplayDropTarget.py:1.11
*** gnue/designer/src/forms/LayoutEditor/DisplayDropTarget.py:1.10 Mon Feb
17 02:32:51 2003
--- gnue/designer/src/forms/LayoutEditor/DisplayDropTarget.py Sun Mar 30
12:17:00 2003
***************
*** 179,186 ****
elif params['Type'] in ('selectedWidgets',):
xshift = x - int(attributes['startingX'])
yshift = y - int(attributes['startingY'])
! for uiwidget in self.editor._currentSelection.keys():
! uiwidget.relativeMove(xshift,yshift)
else:
parent = self.editor.page
nextY += 1
--- 179,186 ----
elif params['Type'] in ('selectedWidgets',):
xshift = x - int(attributes['startingX'])
yshift = y - int(attributes['startingY'])
! for widget in self.editor._currentSelection:
! widget._widgetHandler.relativeMove(xshift,yshift)
else:
parent = self.editor.page
nextY += 1
Index: gnue/designer/src/forms/LayoutEditor/LayoutEditor.py
diff -c gnue/designer/src/forms/LayoutEditor/LayoutEditor.py:1.64
gnue/designer/src/forms/LayoutEditor/LayoutEditor.py:1.65
*** gnue/designer/src/forms/LayoutEditor/LayoutEditor.py:1.64 Wed Mar 19
01:06:08 2003
--- gnue/designer/src/forms/LayoutEditor/LayoutEditor.py Sun Mar 30
12:17:00 2003
***************
*** 89,94 ****
--- 89,95 ----
self._currentObject = None
self.mode = 'move'
+ self.__drawing = 0
self.__x = 0
self.__y = 0
self.__ox = 0
***************
*** 150,165 ****
def onSetCurrentObject (self, event):
object = event.object
handler = event.originator
self._currentObject = object
! if object == None:
! for o in self._currentSelection.keys():
! o.setSelected(0)
! return
! ## if hasattr(object, '_widgetHandler'):
! ## self.propBar.setCurrentObject(object)
if handler != "Forms::LayoutEditor":
self._setCurrentPage(object)
self._setCurrentBlock(object)
self._setFeedback()
def _setCurrentBlock(self,object):
--- 151,168 ----
def onSetCurrentObject (self, event):
object = event.object
handler = event.originator
+
+ try:
+ selection = event.selection
+ except:
+ selection = [object]
+
self._currentObject = object
!
if handler != "Forms::LayoutEditor":
self._setCurrentPage(object)
self._setCurrentBlock(object)
+ self._setSelection(object, selection)
self._setFeedback()
def _setCurrentBlock(self,object):
***************
*** 171,178 ****
block = object._block
if block:
self.block = block
- print self
- print "Setting current block to %s" % self.block
self.blockCombo.SetValue(block.name)
## self._setFeedback()
--- 174,179 ----
***************
*** 242,257 ****
pass
! def __setCurrentObject(self,object):
! if hasattr(object, '_widgetHandler'):
! self._currentSelection[object._widgetHandler] = 1
! object._widgetHandler.setSelected(1)
def onCreateObject (self, event):
object = event.object
handler = event.originator
! self._currentSelection = {}
if object == None:
return
--- 243,270 ----
pass
! def _setSelection(self, focus, objects):
!
! for key in self._currentSelection:
! if key not in objects:
! try:
! key._widgetHandler.setSelected(0)
! except AttributeError:
! pass
!
!
! for object in objects:
! if hasattr(object, '_widgetHandler'):
! self._currentSelection.append(object)
! object._widgetHandler.setSelected(1, object == focus)
!
! self._currentSelection = objects[:]
def onCreateObject (self, event):
object = event.object
handler = event.originator
! ## self._currentSelection = []
if object == None:
return
***************
*** 274,281 ****
def onModifyObject (self, event):
object = event.object
handler = event.originator
- if object == None:
- return
# TODO: adjust label width to match new length...this shouldn't be here
if object._type == 'GFLabel':
--- 287,292 ----
***************
*** 312,317 ****
--- 323,329 ----
def onDeleteObject (self, event):
+
object = event.object
handler = event.originator
***************
*** 329,338 ****
self.notebook.DeletePage(index)
if hasattr(object, '_widgetHandler') and object._widgetHandler != None:
! try:
! del self._currentSelection[object._widgetHandler]
! except KeyError:
! pass
for i in range(len(self.widgetList)):
if self.widgetList[i] == object:
--- 341,349 ----
self.notebook.DeletePage(index)
if hasattr(object, '_widgetHandler') and object._widgetHandler != None:
! if object in self._currentSelection:
! object._widgetHandler.setSelected(0)
! del self._currentSelection[self._currentSelection.index(object)]
for i in range(len(self.widgetList)):
if self.widgetList[i] == object:
***************
*** 357,363 ****
def drawPage(self, page):
! self._currentSelection = {}
self.page = page
try:
--- 368,374 ----
def drawPage(self, page):
! self._currentSelection = []
self.page = page
try:
***************
*** 413,418 ****
--- 424,431 ----
page.walk(self.__drawItem)
+ ### coverPanel = TransparentPanel(self, self.panel)
+
EVT_CHAR(self.panel, self.keyTrap)
EVT_LEFT_DOWN(self.panel, self.OnLeftDown)
EVT_MOTION(self.panel, self.OnMotion)
***************
*** 446,463 ****
# TODO: This segfaults us... yay!!!
widget.phaseInit(widget._buildObject())
!
object._widget._object = object
object._widgetHandler.initialize(object._widget)
- if not len(self._currentSelection.keys()):
- self._currentSelection = {object._widgetHandler:1}
- object._widgetHandler.setSelected(0)
self.widgetList.append(object)
def OnSize(self, event):
- ## self.propBar.SetSize(wxSize(self.GetClientSize().x,
self.propBar.GetSize().y))
- ## self.propBar.SetPosition(wxPoint(0, self.GetClientSize().y -
self.propBar.GetSize().y))
- ## self.notebook.SetSize(wxSize(self.GetClientSize().x-8,
self.GetClientSize().y - 8 - self.propBar.GetSize().y))
self.notebook.SetSize(wxSize(self.GetClientSize().x-8,
self.GetClientSize().y - 8))# - self.propBar.GetSize().y))
def OnPageSelected(self, event):
--- 459,470 ----
# TODO: This segfaults us... yay!!!
widget.phaseInit(widget._buildObject())
!
object._widget._object = object
object._widgetHandler.initialize(object._widget)
self.widgetList.append(object)
def OnSize(self, event):
self.notebook.SetSize(wxSize(self.GetClientSize().x-8,
self.GetClientSize().y - 8))# - self.propBar.GetSize().y))
def OnPageSelected(self, event):
***************
*** 471,477 ****
# Save starting coordinates for cross-selection box
x, y = event.GetPositionTuple()
! self.panel.SetCursor(wxCROSS_CURSOR)
## x = int(x / self.gridWidth) * self.gridWidth
## y = int(y / self.gridHeight) * self.gridHeight
--- 478,484 ----
# Save starting coordinates for cross-selection box
x, y = event.GetPositionTuple()
! self.__drawing = 1
## x = int(x / self.gridWidth) * self.gridWidth
## y = int(y / self.gridHeight) * self.gridHeight
***************
*** 500,506 ****
def OnMotion(self, event):
# draw cross-selection box
! if event.LeftIsDown():
x, y = event.GetPositionTuple()
self.xorBox(self.__x, self.__y, x, y, self.__ox, self.__oy)
--- 507,518 ----
def OnMotion(self, event):
# draw cross-selection box
! if self.__drawing and event.LeftIsDown():
!
! if self.__drawing == 1:
! self.panel.SetCursor(wxCROSS_CURSOR)
! self.__drawing = 2
!
x, y = event.GetPositionTuple()
self.xorBox(self.__x, self.__y, x, y, self.__ox, self.__oy)
***************
*** 512,530 ****
def OnLeftUp(self, event):
! for selection in self._currentSelection.keys():
! selection.setSelected(0)
- self._currentSelection = {}
! if self.__ox != None:
self.xorBox(self.__x, self.__y, self.__ox, self.__oy)
self.__ox = None
self.__oy = None
! x, y = event.GetPositionTuple()
# Set x1,y1 to be smaller coordinates, and x2,y2 to be larger
x1, x2 = order(int(self.__x / self.gridWidth), int(x / self.gridWidth))
y1, y2 = order(int(self.__y / self.gridHeight),int(y / self.gridHeight))
--- 524,541 ----
def OnLeftUp(self, event):
! selection = []
! if self.__drawing and self.__ox is not None:
self.xorBox(self.__x, self.__y, self.__ox, self.__oy)
self.__ox = None
self.__oy = None
! self.__drawing = 0
# Set x1,y1 to be smaller coordinates, and x2,y2 to be larger
+ x, y = event.GetPositionTuple()
x1, x2 = order(int(self.__x / self.gridWidth), int(x / self.gridWidth))
y1, y2 = order(int(self.__y / self.gridHeight),int(y / self.gridHeight))
***************
*** 540,546 ****
if self.mode == 'move':
if areaSelected:
# We are selecting an area
! self.page.walk(self.selectWidgetInArea, x1, y1, x2, y2)
elif self.mode == 'positioning':
--- 551,569 ----
if self.mode == 'move':
if areaSelected:
# We are selecting an area
! self.page.walk(self.selectWidgetInArea, x1, y1, x2, y2, selection)
! try:
! object = selection[-1]
! except IndexError:
! object = self.page
! self.dispatchEvent('ObjectSelected',
! object = object,
! originator = "Forms::LayoutEditor",
! selection = selection)
! else:
! self.dispatchEvent('ObjectSelected',
! object = self.page,
! originator = "Forms::LayoutEditor")
elif self.mode == 'positioning':
***************
*** 555,567 ****
!
! def selectWidgetInArea(self, object, x1, y1, x2, y2):
try:
if x1 <= object.Char__x <= x2 and \
y1 <= object.Char__y <= y2:
! self._currentSelection[object._widgetHandler] = 1
! object._widgetHandler.setSelected(1)
except AttributeError:
# Not all child objects have coordinates (x,y)
pass
--- 578,589 ----
! def selectWidgetInArea(self, object, x1, y1, x2, y2, selection):
try:
if x1 <= object.Char__x <= x2 and \
y1 <= object.Char__y <= y2:
! if object not in selection:
! selection.append(object)
except AttributeError:
# Not all child objects have coordinates (x,y)
pass
***************
*** 593,637 ****
self.panel.PopupMenu(menu, event.GetPosition())
- def clearSelections(self):
- for widget in self._currentSelection.keys():
- widget.setSelected(0)
- self._currentSelection = {}
-
-
def keyTrap(self, event):
if event.KeyCode() in (WXK_LEFT, WXK_RIGHT, WXK_UP, WXK_DOWN) and \
! len(self._currentSelection.keys()):
if event.AltDown(): # or event.MetaDown():
if event.KeyCode() == WXK_LEFT:
! for widget in self._currentSelection.keys():
! widget.relativeResize(-1,0)
if event.KeyCode() == WXK_RIGHT:
! for widget in self._currentSelection.keys():
! widget.relativeResize(1,0)
if event.KeyCode() == WXK_UP:
! for widget in self._currentSelection.keys():
! widget.relativeResize(0,-1)
if event.KeyCode() == WXK_DOWN:
! for widget in self._currentSelection.keys():
! widget.relativeResize(0,1)
else:
if event.KeyCode() == WXK_LEFT:
! for widget in self._currentSelection.keys():
! widget.relativeMove(-1,0)
if event.KeyCode() == WXK_RIGHT:
! for widget in self._currentSelection.keys():
! widget.relativeMove(1,0)
if event.KeyCode() == WXK_UP:
! for widget in self._currentSelection.keys():
! widget.relativeMove(0,-1)
if event.KeyCode() == WXK_DOWN:
! for widget in self._currentSelection.keys():
! widget.relativeMove(0,1)
elif event.KeyCode() == WXK_DELETE and \
! len(self._currentSelection.keys()):
! for object in self._currentSelection.keys():
! self.dispatchEvent('ObjectDeleted', object=object.object,
originator=self)
def startPrePositioningTemplate(self, template):
--- 615,655 ----
self.panel.PopupMenu(menu, event.GetPosition())
def keyTrap(self, event):
if event.KeyCode() in (WXK_LEFT, WXK_RIGHT, WXK_UP, WXK_DOWN) and \
! len(self._currentSelection):
if event.AltDown(): # or event.MetaDown():
+ resize = None
if event.KeyCode() == WXK_LEFT:
! resize = (-1,0)
if event.KeyCode() == WXK_RIGHT:
! resize = (1,0)
if event.KeyCode() == WXK_UP:
! resize = (0,-1)
if event.KeyCode() == WXK_DOWN:
! resize = (0,1)
! if resize:
! for widget in self._currentSelection:
! widget._widgetHandler.relativeResize(*resize)
else:
+ pos = None
if event.KeyCode() == WXK_LEFT:
! pos = (-1,0)
if event.KeyCode() == WXK_RIGHT:
! pos = (1,0)
if event.KeyCode() == WXK_UP:
! pos = (0,-1)
if event.KeyCode() == WXK_DOWN:
! pos = (0,1)
!
! if pos:
! for widget in self._currentSelection:
! widget._widgetHandler.relativeMove(*pos)
!
elif event.KeyCode() == WXK_DELETE and \
! len(self._currentSelection):
! for object in self._currentSelection:
! self.dispatchEvent('ObjectDeleted', object=object,
originator=self)
def startPrePositioningTemplate(self, template):
***************
*** 660,664 ****
--- 678,724 ----
def Notify(self):
self.__method(*self.__args, **self.__params)
+
+
+
+ class TransparentPanel:
+ def __init__(self, layoutEditor, parent):
+ self.parent = parent
+ self.editor = layoutEditor
+ self.bitmap = wxEmptyBitmap(*self.parent.GetClientSizeTuple())
+
+ class TransparentPanelXXXX(wxWindow):
+ def __init__(self, layoutEditor, parent):
+ wxWindow.__init__(self, parent, -1, pos=wxPoint(0,0),
size=parent.GetClientSize())
+ # EVT_PAINT(self, self.OnPaint)
+ EVT_ERASE_BACKGROUND(self, self.OnEraseBackground)
+ # parent.Refresh()
+
+ def OnEraseBackground(self, event):
+ print "Painting"
+ pass
+
+
+ def OnPaint(self, event):
+ object = wxPyTypeCast(event.GetEventObject(),'wxWindow')
+ dc = wxPaintDC(object)
+ dc.BeginDrawing()
+ dc.SetBackgroundMode(wxTRANSPARENT)
+ dc.SetClippingRegion(5,5,10,50)
+ ##
dc.SetBackground(wxBrush(self.parent.GetBackgroundColour(),wxTRANSPARENT))
+ ## dc.SetBackground(wxBrush(wxBLACK,wxTRANSPARENT))
+
+ ## dc.Clear()
+ ## if self.focused:
+ ## dc.SetPen(wxPen(activeBorderColor))
+ ## else:
+ ## dc.SetPen(wxPen(inactiveBorderColor))
+ ## x1,y1 = object.GetSizeTuple()
+ ## dc.DrawRectangle(0,0,x1,y1)
+ ## if self.focused:
+ ## dc.DrawRectangle(1,1,x1-2,y1-2)
+
+ dc.EndDrawing()
+
Index: gnue/designer/src/forms/LayoutEditor/WidgetHandler.py
diff -c gnue/designer/src/forms/LayoutEditor/WidgetHandler.py:1.10
gnue/designer/src/forms/LayoutEditor/WidgetHandler.py:1.11
*** gnue/designer/src/forms/LayoutEditor/WidgetHandler.py:1.10 Mon Feb 17
02:32:52 2003
--- gnue/designer/src/forms/LayoutEditor/WidgetHandler.py Sun Mar 30
12:17:00 2003
***************
*** 1,6 ****
#
- # Copyright 2001-2003 Free Software Foundation
- #
# This file is part of GNU Enterprise.
#
# GNU Enterprise is free software; you can redistribute it
--- 1,4 ----
***************
*** 18,23 ****
--- 16,23 ----
# write to the Free Software Foundation, Inc., 59 Temple Place
# - Suite 330, Boston, MA 02111-1307, USA.
#
+ # Copyright 2001-2003 Free Software Foundation
+ #
# FILE:
# WidgetHandler.py
#
***************
*** 109,117 ****
widget.Refresh()
! def setSelected(self, selected):
self.selected = selected
! self.highlightBox.setSelected(selected)
def setAllChildren(self, event, widget, trap):
--- 109,118 ----
widget.Refresh()
! def setSelected(self, selected, focused=1):
self.selected = selected
! self.focused = focused
! self.highlightBox.setSelected(selected, focused)
def setAllChildren(self, event, widget, trap):
***************
*** 131,151 ****
event.Skip()
- def OnLeftDown(self, event):
- self.mouseStartX, self.mouseStartY = event.GetPositionTuple()
- self._iMoved = 0
-
- if not self.instance._currentSelection.has_key(self):
- self.instance._currentSelection[self] = 1
-
self.instance._instance.dispatchEvent('ObjectSelected',object=self.object,originator="Forms::LayoutEditor")
- self.setSelected(1)
- self._alreadySelected = 0
- else:
- self._alreadySelected = 1
-
- event.Skip()
-
-
def beginDragDrop(self, event):
# Drag and drop TODO: This needs changed to pull all selected widgets
--- 132,137 ----
***************
*** 175,195 ****
event.Skip()
def OnLeftUp(self, event):
if self._iMoved:
self._iMoved = 0
- elif not event.ShiftDown():
- # Select only 1 widget
- for selection in self.instance._currentSelection.keys():
- selection.setSelected(0)
- self.instance._currentSelection = {self:1}
- self.setSelected(1)
- elif self._alreadySelected:
- # Remove widget from selection hash
- del self.instance._currentSelection[self]
- self.setSelected(0)
- self._alreadySelected = 0
event.Skip()
--- 161,191 ----
event.Skip()
+ def OnLeftDown(self, event):
+ self.mouseStartX, self.mouseStartY = event.GetPositionTuple()
+ self._iMoved = 0
+
+ if event.ShiftDown():
+ selections = self.instance._currentSelection[:]
+ else:
+ selections = []
+
+ if self.object in selections:
+ if event.ShiftDown():
+ del selections[selections.index(self.object)]
+ else:
+ selections.append(self.object)
+
+ self.instance._instance.dispatchEvent('ObjectSelected',object=self.object,
+ originator="Forms::LayoutEditor",
+ selection=selections)
+ event.Skip()
+
+
def OnLeftUp(self, event):
if self._iMoved:
self._iMoved = 0
event.Skip()
***************
*** 252,258 ****
x = self.widget.GetPosition().x
width = self.widget.GetSize().width + self.instance.gridWidth
- self.instance.clearSelections()
self._popup_editor = PopupEditor(self.instance.workspace,
self._endPopupEditor,
x + self.instance.panel.GetPosition().x,
--- 248,253 ----
Index: gnue/designer/src/forms/LayoutEditor/WidgetHighlighter.py
diff -c gnue/designer/src/forms/LayoutEditor/WidgetHighlighter.py:1.5
gnue/designer/src/forms/LayoutEditor/WidgetHighlighter.py:1.6
*** gnue/designer/src/forms/LayoutEditor/WidgetHighlighter.py:1.5 Mon Feb
17 02:32:52 2003
--- gnue/designer/src/forms/LayoutEditor/WidgetHighlighter.py Sun Mar 30
12:17:00 2003
***************
*** 1,6 ****
#
- # Copyright 2001-2003 Free Software Foundation
- #
# This file is part of GNU Enterprise.
#
# GNU Enterprise is free software; you can redistribute it
--- 1,4 ----
***************
*** 18,23 ****
--- 16,23 ----
# write to the Free Software Foundation, Inc., 59 Temple Place
# - Suite 330, Boston, MA 02111-1307, USA.
#
+ # Copyright 2001-2003 Free Software Foundation
+ #
# FILE:
# WidgetHighlighter.py
#
***************
*** 30,35 ****
--- 30,37 ----
from Utils import *
from gnue.common.apps import GDebug
+ inactiveBorderColor = wxBLACK
+ activeBorderColor = wxBLUE
#
#
***************
*** 38,43 ****
--- 40,46 ----
def __init__(self, parent):
self.selected = 0
+ self.focused = 0
self.parent = parent
self.x1 = 1
self.y1 = 1
***************
*** 47,69 ****
self.east = None
self.north = None
self.south = None
- panelColor = parent.GetBackgroundColour()
- self.inactiveBorderColor = wxColour(panelColor.Red()-16,
- panelColor.Green()-16,
- panelColor.Blue()-16)
- self.activeBorderColor = wxBLUE
!
# Draw the lines comprising the highlights
def createHighlights(self):
if self.north:
self.Destroy()
self.north = wxWindow(self.parent, -1)
self.south = wxWindow(self.parent, -1)
self.east = wxWindow(self.parent, -1)
self.west = wxWindow(self.parent, -1)
for object in (self.north,self.south,self.east,self.west):
EVT_PAINT(object, self.OnPaint)
self.setBoundary(self.x1, self.y1, self.x2, self.y2)
--- 50,79 ----
self.east = None
self.north = None
self.south = None
!
# Draw the lines comprising the highlights
def createHighlights(self):
if self.north:
self.Destroy()
+
+ self.northb = wxWindow(self.parent, -1)
+ self.southb = wxWindow(self.parent, -1)
+ self.eastb = wxWindow(self.parent, -1)
+ self.westb = wxWindow(self.parent, -1)
+ for object in (self.northb,self.southb,self.eastb,self.westb):
+ EVT_PAINT(object, self.OnPaintBorder)
+
+
self.north = wxWindow(self.parent, -1)
self.south = wxWindow(self.parent, -1)
self.east = wxWindow(self.parent, -1)
self.west = wxWindow(self.parent, -1)
for object in (self.north,self.south,self.east,self.west):
EVT_PAINT(object, self.OnPaint)
+
+
+
self.setBoundary(self.x1, self.y1, self.x2, self.y2)
***************
*** 82,89 ****
self.north = None
self.south = None
! def setBoundary(self, x1, y1, x2, y2):
self.x1 = x1
self.y1 = y1
self.x2 = x2
--- 92,112 ----
self.north = None
self.south = None
+ if self.westb:
+ self.westb.Destroy()
+ if self.eastb:
+ self.eastb.Destroy()
+ if self.northb:
+ self.northb.Destroy()
+ if self.southb:
+ self.southb.Destroy()
+ self.westb = None
+ self.eastb = None
+ self.northb = None
+ self.southb = None
!
! def setBoundaryXXXXXX(self, x1, y1, x2, y2):
self.x1 = x1
self.y1 = y1
self.x2 = x2
***************
*** 91,106 ****
if self.west:
self.west.SetPosition(wxPoint(x1,y1))
! self.west.SetSize(wxSize(1,y2-y1+1))
if self.east:
self.east.SetPosition(wxPoint(x2,y1))
! self.east.SetSize(wxSize(1,y2-y1+1))
if self.south:
self.south.SetPosition(wxPoint(x1,y2))
! self.south.SetSize(wxSize(x2-x1+1,1))
if self.north:
self.north.SetPosition(wxPoint(x1,y1))
! self.north.SetSize(wxSize(x2-x1+1,1))
def GetChildren(self):
if self.west:
--- 114,166 ----
if self.west:
self.west.SetPosition(wxPoint(x1,y1))
! self.west.SetSize(wxSize(2,y2-y1+2))
if self.east:
self.east.SetPosition(wxPoint(x2,y1))
! self.east.SetSize(wxSize(2,y2-y1+2))
if self.south:
self.south.SetPosition(wxPoint(x1,y2))
! self.south.SetSize(wxSize(x2-x1+2,2))
if self.north:
self.north.SetPosition(wxPoint(x1,y1))
! self.north.SetSize(wxSize(x2-x1+2,2))
!
!
! def setBoundary(self, x1, y1, x2, y2):
! self.x1 = x1
! self.y1 = y1
! self.x2 = x2
! self.y2 = y2
!
! mx = (x2 - x1)/2 + x1 - 1
! my = (y2 - y1)/2 + y1 - 1
!
! if self.west:
! self.west.SetPosition(wxPoint(x1 - 3,my))
! self.west.SetSize(wxSize(4,4))
! if self.east:
! self.east.SetPosition(wxPoint(x2,my))
! self.east.SetSize(wxSize(4,4))
! if self.south:
! self.south.SetPosition(wxPoint(mx,y2))
! self.south.SetSize(wxSize(4,4))
! if self.north:
! self.north.SetPosition(wxPoint(mx,y1 - 3))
! self.north.SetSize(wxSize(4,4))
!
! if self.west:
! self.westb.SetPosition(wxPoint(x1,y1))
! self.westb.SetSize(wxSize(1,y2-y1+1))
! if self.east:
! self.eastb.SetPosition(wxPoint(x2,y1))
! self.eastb.SetSize(wxSize(1,y2-y1+1))
! if self.south:
! self.southb.SetPosition(wxPoint(x1,y2))
! self.southb.SetSize(wxSize(x2-x1+1,1))
! if self.north:
! self.northb.SetPosition(wxPoint(x1,y1))
! self.northb.SetSize(wxSize(x2-x1+1,1))
!
def GetChildren(self):
if self.west:
***************
*** 115,123 ****
def Destroy(self):
self.deleteHighlights()
! def setSelected (self, selected):
if selected:
self.selected = selected
self.createHighlights()
self.Refresh()
else:
--- 175,184 ----
def Destroy(self):
self.deleteHighlights()
! def setSelected (self, selected, focused):
if selected:
self.selected = selected
+ self.focused = focused
self.createHighlights()
self.Refresh()
else:
***************
*** 126,143 ****
def reconfigure(self, event):
self.Refresh()
! def OnPaint(self, event):
object = wxPyTypeCast(event.GetEventObject(),'wxWindow')
dc = wxPaintDC(object)
dc.BeginDrawing()
dc.SetBackground(wxBrush(self.parent.GetBackgroundColour(),wxTRANSPARENT))
dc.Clear()
! if self.selected:
! dc.SetPen(wxPen(self.activeBorderColor))
else:
! dc.SetPen(wxPen(self.inactiveBorderColor))
x1,y1 = object.GetSizeTuple()
! dc.DrawRectangle(0,0,x1,y1)
dc.EndDrawing()
def OnEraseBackground(self, event):
--- 187,249 ----
def reconfigure(self, event):
self.Refresh()
! def OnPaintXXXX(self, event):
object = wxPyTypeCast(event.GetEventObject(),'wxWindow')
dc = wxPaintDC(object)
dc.BeginDrawing()
dc.SetBackground(wxBrush(self.parent.GetBackgroundColour(),wxTRANSPARENT))
dc.Clear()
! if self.focused:
! dc.SetPen(wxPen(activeBorderColor))
else:
! dc.SetPen(wxPen(inactiveBorderColor))
x1,y1 = object.GetSizeTuple()
! ## dc.DrawRectangle(0,0,x1,y1)
! ## if self.focused:
! ## dc.DrawRectangle(1,1,x1-2,y1-2)
!
! dc.EndDrawing()
!
! def OnPaint(self, event):
! if not self.focused: return
! object = wxPyTypeCast(event.GetEventObject(),'wxWindow')
! dc = wxPaintDC(object)
! dc.BeginDrawing()
! ##
dc.SetBackground(wxBrush(self.parent.GetBackgroundColour(),wxTRANSPARENT))
! if self.focused:
! dc.SetBackground(wxBrush(activeBorderColor,wxTRANSPARENT))
! else:
! dc.SetBackground(wxBrush(inactiveBorderColor,wxTRANSPARENT))
!
! dc.Clear()
! ## if self.focused:
! ## dc.SetPen(wxPen(activeBorderColor))
! ## else:
! ## dc.SetPen(wxPen(inactiveBorderColor))
! ## x1,y1 = object.GetSizeTuple()
! ## dc.DrawRectangle(0,0,x1,y1)
! ## if self.focused:
! ## dc.DrawRectangle(1,1,x1-2,y1-2)
!
! dc.EndDrawing()
!
!
! def OnPaintBorder(self, event):
! object = wxPyTypeCast(event.GetEventObject(),'wxWindow')
! dc = wxPaintDC(object)
! dc.BeginDrawing()
! ##
dc.SetBackground(wxBrush(self.parent.GetBackgroundColour(),wxTRANSPARENT))
! dc.SetBackground(wxBrush(wxBLACK,wxTRANSPARENT))
! dc.Clear()
! ## if self.focused:
! ## dc.SetPen(wxPen(activeBorderColor))
! ## else:
! ## dc.SetPen(wxPen(inactiveBorderColor))
! ## x1,y1 = object.GetSizeTuple()
! ## dc.DrawRectangle(0,0,x1,y1)
! ## if self.focused:
! ## dc.DrawRectangle(1,1,x1-2,y1-2)
!
dc.EndDrawing()
def OnEraseBackground(self, event):
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- gnue/designer/src base/MenuBar.py forms/Instanc...,
Jason Cater <=