Login  Register

Re: Re: drawing text issue

Posted by dxli on May 27, 2013; 5:06am
URL: https://forum.librecad.org/drawing-text-issue-tp5708110p5708125.html

Hi,

RS_Text is derived from RS_EntityContainer

You can define a virtual function draw() in RS_Text then.

On Sun, May 26, 2013 at 10:39 PM, Johnson [via LibreCAD] <[hidden email]> wrote:
Hi Dxli
 
I did not see RS_Text::draw()  function .  could you figure out which function is your purpose  to do this feature ? Thanks.
 

wingame82
 
Date: <a href="tel:2013-05-27%C2%A010" value="+12013052710" target="_blank">2013-05-27 10:28
Subject: Re: Re: drawing text issue
Hi Johnson,

I'm thinking about adding a feature to the RS_Text RS_MText entities.

like:

bool m_bUseNativeFonts; //default to true

in the RS_Text::draw() method, you implement drawing native drawText() (should be added from in RS_PainterQt()), according to color, scaling factor, orientation, etc.

For zooming, please note we have a model space (as entity sizes are), and a screen(GUI) space as controlled by zooming factor. draw() methods must do the conversion.

Current font selection is by LibreCAD fonts, we need to implement a selection mechanism for native fonts.

I suggest you to share your implementation in LibreCAD license, i.e., GPLv2 or any later version. By doing so, we can we together to get this important feature.

Thanks,

Dongxu

On Sun, May 26, 2013 at 12:07 PM, Johnson [via LibreCAD] <[hidden email]> wrote:
Hi,  DxLi and Rallaz
 
Currently I don't need CAD purpose , so I could use system QT fonts .
 
But my difficulities now is that
1.  where should the place I insert each text ? Is there any other place rather than drawLayer2 because this function will be drawn by paintEvent as soon as update is called.
 
2.  my requirement is to draw a line ,   on the left up place of the line, I will draft a line.
    I think I could use RS_Line entity and drawText function with system QT font.
    but the problem now is that if I zoom in/out the view,  the RS_line will be changed correspondingly, but the text won't changed.
   
Could you kindly guide me where to implement this feature ? Thanks.
 

wingame82
 

 
Date: <a href="tel:2013-05-23%C2%A019" value="<a href="tel:%2B12013052319" value="+12013052319" target="_blank">+12013052319" target="_blank"><a href="tel:2013-05-23%C2%A019" value="+12013052319" target="_blank">2013-05-23 19:09
Subject: Re: drawing text issue
Hi Johnson,

You can draw text efficiently(see the patch).

CAD uses stick fonts because all fonts are drawn as lines(polylines) and can be converted to CAD entities.

I'm wondering if it's okay to support ordinary fonts, and only revert back to stick fonts when converting is needed. This means efficiency and easy support for all languages.

For the time being, let's fix bugs in 2.0 for a stable release. After that, we implement new features in 2.1.

Thanks,

dxli


diff --git a/librecad/src/lib/gui/rs_graphicview.cpp b/librecad/src/lib/gui/rs_graphicview.cpp
index 726286d..4ee6364 100644
--- a/librecad/src/lib/gui/rs_graphicview.cpp
+++ b/librecad/src/lib/gui/rs_graphicview.cpp
@@ -28,6 +28,7 @@
 #include <limits.h>
 #include "qc_applicationwindow.h"
 #include "rs_graphicview.h"
+#include "rs_painterqt.h"
 
 #include "rs_linetypepattern.h"
 #include "rs_eventhandler.h"
@@ -1094,6 +1095,13 @@ void RS_GraphicView::drawLayer2(RS_Painter *painter)
     // ----------------------------------------------------------
     if (!isPrintPreview())
         drawAbsoluteZero(painter);
+    RS_PainterQt* p0=dynamic_cast<RS_PainterQt*>(painter);
+    if(p0) {
+        DEBUG_HEADER();
+       p0->setPen(0,0,255);
+       p0->setFont(QFont("Times", 20, QFont::Bold));
+       p0->drawText(100, 100, 100, 100, Qt::AlignHCenter, "ABCD");
+    }
 }
 
 



If you reply to this email, your message will be added to the discussion below:
http://forum.librecad.org/drawing-text-issue-tp5708110p5708111.html
To start a new topic under LibreCAD-dev, email [hidden email]
To unsubscribe from LibreCAD-dev, click here.
NAML



If you reply to this email, your message will be added to the discussion below:
http://forum.librecad.org/drawing-text-issue-tp5708110p5708119.html
To start a new topic under LibreCAD-dev, email [hidden email]
To unsubscribe from LibreCAD-dev, click here.
NAML



--
Dongxu Li, Ph.D.
www.librecad.org



If you reply to this email, your message will be added to the discussion below:
http://forum.librecad.org/drawing-text-issue-tp5708110p5708122.html
To start a new topic under LibreCAD-dev, email [hidden email]
To unsubscribe from LibreCAD-dev, click here.
NAML



If you reply to this email, your message will be added to the discussion below:
http://forum.librecad.org/drawing-text-issue-tp5708110p5708123.html
To start a new topic under LibreCAD-dev, email [hidden email]
To unsubscribe from LibreCAD-dev, click here.
NAML



--
Dongxu Li, Ph.D.
www.librecad.org