Update of /cvsroot/arianne/stendhal/src/games/stendhal/client/gui/wt/core In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv28287/src/games/stendhal/client/gui/wt/core Modified Files: WtBaseframe.java WtButton.java WtMessageBox.java WtPanel.java WtTextPanel.java Log Message: Replaced most WT draw()'s with drawContent(). Removed redundent isClosed and isMinimized pre-draw checks. Removed Graphics return value from draw() [drawContent replaces need]. Called dispose() on most sub-graphics (may improve graphics memory). Index: WtMessageBox.java =================================================================== RCS file: /cvsroot/arianne/stendhal/src/games/stendhal/client/gui/wt/core/WtMessageBox.java,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** WtMessageBox.java 23 Mar 2007 21:00:51 -0000 1.7 --- WtMessageBox.java 8 Jul 2007 03:25:26 -0000 1.8 *************** *** 85,98 **** } - /** draws the MessageBox */ - @Override - public Graphics draw(Graphics g) { - if (isClosed()) { - return g; - } - - // draw frame/title bar - Graphics clientArea = super.draw(g); // layout the buttons if (!layedout) { --- 85,97 ---- } + /** + * Draw the messagebox contents. This is only called while open and not + * minimized. + * + * @param g The graphics context to draw with. + */ + @Override + protected void drawContent(Graphics clientArea) { // layout the buttons if (!layedout) { *************** *** 104,110 **** } ! return clientArea; } /** clicked a button */ public void onClick(String name, Point point) { --- 103,110 ---- } ! super.drawContent(clientArea); } + /** clicked a button */ public void onClick(String name, Point point) { Index: WtPanel.java =================================================================== RCS file: /cvsroot/arianne/stendhal/src/games/stendhal/client/gui/wt/core/WtPanel.java,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** WtPanel.java 3 Jul 2007 16:39:46 -0000 1.20 --- WtPanel.java 8 Jul 2007 03:25:26 -0000 1.21 *************** *** 764,774 **** * @param g * graphics where to render to - * @return a graphics object for deriving classes to use. It is already - * clipped to the correct client region */ ! public Graphics draw(Graphics g) { // are we closed? then don't draw anything if (isClosed()) { ! return g; } --- 764,772 ---- * @param g * graphics where to render to */ ! public void draw(Graphics g) { // are we closed? then don't draw anything if (isClosed()) { ! return; } *************** *** 778,784 **** checkDisowned(); - // get correct clipped graphics - Graphics panelGraphics = g.create(x, y, width, height); - // only draw something when we have a title bar or a frame if (frame || titleBar) { --- 776,779 ---- *************** *** 789,812 **** cachedImage = image; } ! panelGraphics.drawImage(image, 0, 0, null); } if (frame) { ! panelGraphics = panelGraphics.create(FRAME_SIZE, FRAME_SIZE, width - (FRAME_SIZE * 2), height ! - (FRAME_SIZE * 2)); } if (titleBar) { ! panelGraphics = panelGraphics.create(0, TITLEBAR_SIZE + 2, width - (FRAME_SIZE * 2), height ! - (FRAME_SIZE * 2) - TITLEBAR_SIZE - 2); } if (!minimized) { ! // now draw the childs ! drawChilds(panelGraphics); } ! return panelGraphics; } /** panels draw themselves */ public void drawDragged(Graphics g) { --- 784,817 ---- cachedImage = image; } ! g.drawImage(image, 0, 0, null); } + // TODO: Find a clean way to do g.dispose() after g.create()'s + if (frame) { ! g = g.create(FRAME_SIZE, FRAME_SIZE, width - (FRAME_SIZE * 2), height - (FRAME_SIZE * 2)); } + if (titleBar) { ! g = g.create(0, TITLEBAR_SIZE + 2, width - (FRAME_SIZE * 2), height - (FRAME_SIZE * 2) - TITLEBAR_SIZE - 2); } if (!minimized) { ! drawContent(g); } + } ! ! /** ! * Draw the panel contents. This is only called while open and not ! * minimized. ! * ! * @param g The graphics context to draw with. ! */ ! protected void drawContent(Graphics g) { ! drawChildren(g); } + /** panels draw themselves */ public void drawDragged(Graphics g) { *************** *** 814,825 **** /** ! * draws all childs * * @param clientArea * Graphics object clipped to the client region. */ ! protected void drawChilds(Graphics clientArea) { ! for (int i = 0; i < children.size(); i++) { ! children.get(children.size() - i - 1).draw(clientArea); } } --- 819,839 ---- /** ! * draws all children * * @param clientArea * Graphics object clipped to the client region. */ ! protected void drawChildren(Graphics g) { ! int i = children.size(); ! ! while(i-- != 0) { ! WtPanel child = children.get(i); ! ! // get correct clipped graphics ! Graphics cg = g.create(child.getX(), child.getY(), child.getWidth(), child.getHeight()); ! ! child.draw(cg); ! ! cg.dispose(); } } Index: WtButton.java =================================================================== RCS file: /cvsroot/arianne/stendhal/src/games/stendhal/client/gui/wt/core/WtButton.java,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** WtButton.java 28 May 2007 23:05:34 -0000 1.8 --- WtButton.java 8 Jul 2007 03:25:26 -0000 1.9 *************** *** 60,80 **** } - /** draws the button */ - @Override - public Graphics draw(Graphics g) { - if (isClosed()) { - return g; - } ! Graphics clientArea = super.draw(g); // draw the image if we have one if (image != null) { ! image.draw(clientArea, 0, 0); } - - return clientArea; } /** button is clicked */ @Override --- 60,81 ---- } ! /** ! * Draw the button contents. This is only called while open and not ! * minimized. ! * ! * @param g The graphics context to draw with. ! */ ! @Override ! protected void drawContent(Graphics g) { ! super.drawContent(g); // draw the image if we have one if (image != null) { ! image.draw(g, 0, 0); } } + /** button is clicked */ @Override Index: WtTextPanel.java =================================================================== RCS file: /cvsroot/arianne/stendhal/src/games/stendhal/client/gui/wt/core/WtTextPanel.java,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** WtTextPanel.java 3 Jul 2007 16:39:48 -0000 1.8 --- WtTextPanel.java 8 Jul 2007 03:25:26 -0000 1.9 *************** *** 107,124 **** } - /** draws the String */ - @Override - public Graphics draw(Graphics g) { - if (isClosed()) { - return g; - } ! // draw frame/title bar ! Graphics clientArea = super.draw(g); ! ! if (isMinimized()) { ! // don't draw minimized windows ! return clientArea; ! } Font font = clientArea.getFont().deriveFont((float) fontSize); --- 107,119 ---- } ! /** ! * Draw the text contents. This is only called while open and not ! * minimized. ! * ! * @param g The graphics context to draw with. ! */ ! @Override ! protected void drawContent(Graphics clientArea) { Font font = clientArea.getFont().deriveFont((float) fontSize); *************** *** 178,183 **** lastHeight = pos; - - return clientArea; } } --- 173,176 ---- Index: WtBaseframe.java =================================================================== RCS file: /cvsroot/arianne/stendhal/src/games/stendhal/client/gui/wt/core/WtBaseframe.java,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** WtBaseframe.java 3 Jul 2007 16:39:46 -0000 1.11 --- WtBaseframe.java 8 Jul 2007 03:25:26 -0000 1.12 *************** *** 108,115 **** * @param g * graphics where to render to - * @return same graphics object */ @Override ! public synchronized Graphics draw(Graphics g) { // draw the stuff super.draw(g); --- 108,114 ---- * @param g * graphics where to render to */ @Override ! public synchronized void draw(Graphics g) { // draw the stuff super.draw(g); *************** *** 122,127 **** // yep, draw it draggedObject.drawDragged(dragg); } - return g; } --- 121,126 ---- // yep, draw it draggedObject.drawDragged(dragg); + dragg.dispose(); } } |