Revision: 56199
          http://sourceforge.net/p/brlcad/code/56199
Author:   vladbogo
Date:     2013-07-24 11:06:50 +0000 (Wed, 24 Jul 2013)
Log Message:
-----------
Set font size according to window size.

Modified Paths:
--------------
    brlcad/trunk/include/dm-qt.h
    brlcad/trunk/src/libdm/dm-qt.cpp

Modified: brlcad/trunk/include/dm-qt.h
===================================================================
--- brlcad/trunk/include/dm-qt.h        2013-07-24 10:04:43 UTC (rev 56198)
+++ brlcad/trunk/include/dm-qt.h        2013-07-24 11:06:50 UTC (rev 56199)
@@ -50,6 +50,7 @@
     QColor fg, bg;
     QPixmap *pix;
     QPainter *painter;
+    QFont *font;
 };
 
 #endif /* DM_QT */

Modified: brlcad/trunk/src/libdm/dm-qt.cpp
===================================================================
--- brlcad/trunk/src/libdm/dm-qt.cpp    2013-07-24 10:04:43 UTC (rev 56198)
+++ brlcad/trunk/src/libdm/dm-qt.cpp    2013-07-24 11:06:50 UTC (rev 56199)
@@ -51,6 +51,7 @@
     struct dm_xvars *pubvars = (struct dm_xvars *)dmp->dm_vars.pub_vars;
     struct qt_vars *privars = (struct qt_vars *)dmp->dm_vars.priv_vars;
 
+    delete privars->font;
     privars->win->close();
     delete privars->win;
 
@@ -78,6 +79,9 @@
     privars->pix->fill(privars->bg);
 
     privars->painter = new QPainter(privars->pix);
+    privars->painter->setPen(privars->fg);
+    privars->painter->setFont(*privars->font);
+     
     return TCL_OK;
 }
 
@@ -88,8 +92,9 @@
     struct qt_vars *privars = (struct qt_vars *)dmp->dm_vars.priv_vars;
     privars->painter->end();
     delete privars->painter;
+    privars->painter = NULL;
+    dmp->dm_processEvents(dmp);
 
-    dmp->dm_processEvents(dmp);
     return TCL_OK;
 }
 
@@ -144,7 +149,6 @@
     sy2 = dm_Normal2Xy(dmp, y_2, 0);
 
     privars->painter->drawLine(sx1, sy1, sx2, sy2);
-
     return TCL_OK;
 }
 
@@ -232,8 +236,9 @@
 
     privars->fg.setRgb(r, g, b);
 
-    privars->painter->setPen(privars->fg);
-
+    if (privars->painter != NULL) {
+       privars->painter->setPen(privars->fg);
+    }
     return TCL_OK;
 }
 
@@ -309,12 +314,37 @@
     *privars->pix = privars->pix->scaled(width, height);
 
     if (dmp->dm_debugLevel) {
-       bu_log("qt_configureWin_guts()\n");
+       bu_log("qt_configureWin()\n");
        bu_log("width = %d, height = %d\n", dmp->dm_width, dmp->dm_height);
     }
 
-    /* TODO select font */
+    /* set font according to window size */
+    if (privars->font == NULL) {
+       privars->font = new QFont(QString(FONTBACK));
+    }
 
+    if (dmp->dm_width < 582) {
+       if (privars->font->pointSize() != 5) {
+           privars->font->setPointSize(5);
+       }
+    } else if (dmp->dm_width < 679) {
+       if (privars->font->pointSize() != 6) {
+           privars->font->setPointSize(6);
+       }
+    } else if (dmp->dm_width < 776) {
+       if (privars->font->pointSize() != 7) {
+           privars->font->setPointSize(7);
+       }
+    } else if (dmp->dm_width < 874) {
+       if (privars->font->pointSize() != 8) {
+           privars->font->setPointSize(8);
+       }
+    } else {
+       if (privars->font->pointSize() != 9) {
+           privars->font->setPointSize(9);
+       }
+    }
+
     return TCL_OK;
 }
 
@@ -672,15 +702,17 @@
 
     privars->win->setAutoFillBackground(true);
 
+    privars->font = NULL;
     qt_configureWin(dmp, 1);
 
+    privars->painter = NULL;
+    qt_setFGColor(dmp, 1, 0, 0, 0, 0);
     qt_setBGColor(dmp, 0, 0, 0);
     privars->win->show();
 
     Tk_SetWindowBackground(pubvars->xtkwin, 0);
     Tk_MapWindow(pubvars->xtkwin);
-
-    bu_log("Tk: %ld Qt: %ld\n", pubvars->win, privars->win->winId());
+    
     bu_log("qt_open called\n");
     return dmp;
 }

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.


------------------------------------------------------------------------------
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits

Reply via email to