Example #1
0
////////////////////////////////////////////////////
// OnSavesvg 矩形内SVG保存函数
////////////////////////////////////////////////////
CString CRectangle::OnSavesvg()
{
    HDC hDC = CreateCompatibleDC(NULL);

    int cut = round( ( double ) 10 * 1.0);

    CString rec_Temp,text_Temp;   //rec_Temp保存绘制形状的路径 text_Temp保存绘制文字的变量
    rec_Temp.Format("<rect x=\"%d\" y=\"%d\" width=\"%d\" height=\"%d\" style=\"fill:rgb(255,255,255);stroke-width:1;stroke:rgb(0,0,0)\"/>\r\n",point1.x,point1.y,point2.x-point1.x,point2.y-point1.y);

    CString isItalic,isUnderline;   // isItalic和isUnderline分别为是否斜体和下划线
    if(logFont.lfItalic == true)
        isItalic="Italic";
    else
        isItalic="Normal";
    if(logFont.lfUnderline == true)
        isUnderline="Underline";
    else
        isUnderline="none";

    text_Temp.Format("<text x=\"%d\" y=\"%d\" style=\"fill:RGB(%d,%d,%d); text-anchor: middle; font-size:%dpt; font-weight:%d; font-family:%s; font-style:%s; text-decoration:%s\">%s</text>\r\n", (point1.x + point2.x) / 2,point1.y + cut / 2 + abs(logFont.lfHeight),GetRValue(GetClr()),GetGValue(GetClr()),GetBValue(GetClr()),(int)(-(float)logFont.lfHeight * 72.0 / GetDeviceCaps(hDC, LOGPIXELSY) + 0.5),logFont.lfWeight,logFont.lfFaceName,(LPCTSTR)isItalic,(LPCTSTR)isUnderline,GetTitle());

    return rec_Temp+text_Temp;   //return 向flowchart_testDoc中返回上述两字符串
}
Example #2
0
////////////////////////////////////////////////////
// OnSavesvg 折线内SVG保存函数
////////////////////////////////////////////////////
CString CLine::OnSavesvg()
{
	HDC hDC = CreateCompatibleDC(NULL);
	
	CString lne_Temp,text_Temp,array_Temp;   //rec_Temp保存绘制形状的路径 text_Temp保存绘制文字的变量 array_Temp保存箭头绘制变量
	
	lne_Temp.Format("<polyline points=\"%d,%d %d,%d %d,%d %d,%d %d,%d %d,%d\" style=\"fill:rgb(255,255,255);fill-opacity:0;stroke-width:1;stroke:rgb(0,0,0)\"/>\r\n",point1.x,point1.y,mpoint1.x,mpoint1.y,mpoint2.x,mpoint2.y,mpoint3.x,mpoint3.y,mpoint4.x,mpoint4.y,point2.x,point2.y);
	
	if(mpoint4.x==point2.x)   //如果是向下的箭头
		array_Temp.Format("<polyline points=\"%d,%d %d,%d %d,%d\" style=\"fill:rgb(255,255,255);fill-opacity:0;stroke-width:1;stroke:rgb(0,0,0)\"/>\r\n",point2.x-5,point2.y-5,point2.x,point2.y,point2.x+5,point2.y-5);
	else if(mpoint4.y==point2.y)   //如果是向右的箭头
	    array_Temp.Format("<polyline points=\"%d,%d %d,%d %d,%d\" style=\"fill:rgb(255,255,255);fill-opacity:0;stroke-width:1;stroke:rgb(0,0,0)\"/>\r\n",point2.x-5,point2.y-5,point2.x,point2.y,point2.x-5,point2.y+5);
	
	CString isItalic,isUnderline;   // isItalic和isUnderline分别为是否斜体和下划线
	int cut = round( ( double ) 10 * 1.0 );
	
	if(logFont.lfItalic == true)
		isItalic="Italic";
	else
		isItalic="Normal";
	if(logFont.lfUnderline == true)
		isUnderline="Underline";
	else
		isUnderline="none";
	
	text_Temp.Format("<text x=\"%d\" y=\"%d\" style=\"fill:RGB(%d,%d,%d); text-anchor: middle; font-size:%dpt; font-weight:%d; font-family:%s; font-style:%s; text-decoration:%s\">%s</text>\r\n", (point1.x + point2.x) / 2,point1.y + (point2.x-point1.x) / 10 + abs(logFont.lfHeight),GetRValue(GetClr()),GetGValue(GetClr()),GetBValue(GetClr()),(int)(-(float)logFont.lfHeight * 72.0 / GetDeviceCaps(hDC, LOGPIXELSY) + 0.5),logFont.lfWeight,logFont.lfFaceName,(LPCTSTR)isItalic,(LPCTSTR)isUnderline,GetTitle());
	
	return lne_Temp+text_Temp+array_Temp;   //return 向flowchart_testDoc中返回上述三字符串

}
Example #3
0
void format::button_ok_VwXEvOnButtonClick(wxCommandEvent& event,int index) {

    FB_Edit * stc = Parent->stc;
    int idx = Parent->FBNotebook->GetSelection();
    Buffer * buff = Parent->bufferList[idx];

    if (buff->GetFileType()>0)
        return;

    wxString guts=Parent->stc->GetText(),tagstart="",tagend="";
    int sel=chc15->GetSelection();
    bool dotags=false,dokeyws=false;
    wxString output="";
    StyleInfo * Style = &(Parent->Style);
    switch(sel) {
        case 0:
        dokeyws=true;
        break;
        case 1:
        dokeyws=true;
        break;
        case 2:
        dokeyws=true;
        break;
        case 3:
        dotags=true;
        tagstart="[";
        tagend="]";
        output="[quote=\"fbide 0.4 bbcode generator\"][size=12]";
        break;
        case 4:
        dotags=true;
        tagstart="<";
        tagend=">";
        output="<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n<html>\n<head>\n<meta http-equiv=\"content-type\" content=\"text/html;charset=iso-8859-1\">\n<title></title>\n</head>\n<body style=\"font-size:12pt; background-color:#"+hex(GetClr(Style->DefaultBgColour))+"; color:#"+hex(GetClr(Style->Info[wxSTC_B_IDENTIFIER].foreground))+"\"><pre>";
        break;
    }
    wxString curword="";
    initkeywords();
    int kwtyp=0;
    bool commenting=false,dontadd=false,quoting=false,bold=false,italic=false;

    wxString colours[]={hex(GetClr(Style->Info[wxSTC_B_KEYWORD].foreground)),
                        hex(GetClr(Style->Info[wxSTC_B_KEYWORD2].foreground)),
                        hex(GetClr(Style->Info[wxSTC_B_KEYWORD3].foreground)),
                        hex(GetClr(Style->Info[wxSTC_B_KEYWORD4].foreground)),
                        hex(GetClr(Style->Info[wxSTC_B_COMMENT].foreground)),
                        hex(GetClr(Style->Info[wxSTC_B_OPERATOR].foreground)),
                        hex(GetClr(Style->Info[wxSTC_B_STRING].foreground)),
                        hex(GetClr(Style->Info[wxSTC_B_NUMBER].foreground)),
                        hex(GetClr(Style->Info[wxSTC_B_PREPROCESSOR].foreground))};
    int teh_len=(int)guts.Len(),real_len=(int)guts.Len(),color=-1;
    for(int i=0;i<teh_len;i++) {
        unsigned char j00_n00b=guts.GetChar(i);
        curword+=j00_n00b;
        if(j00_n00b!=38&&
                (j00_n00b>0&&j00_n00b<46)||
                j00_n00b==47||
                (j00_n00b>57&&j00_n00b<65)||
                (j00_n00b>90&&j00_n00b<95)||
                j00_n00b==96||
                (j00_n00b>122&&j00_n00b<128)) {
            curword=curword.Left(curword.Len()-1);
            if(dotags&&!commenting&&!quoting&&(kwtyp=isKeyword(curword))!=0) {
                if(color!=kwtyp-1) {
                    if(color!=-1)
                        output+=tagstart+(sel==4?"/span":"/color")+tagend;
                    if(bold)
                        output+=tagstart+"/b"+tagend;
                    if(italic)
                        output+=tagstart+"/i"+tagend;
                    output+=tagstart+"b"+tagend+tagstart+(sel==4?"span style=\"color:#":"color=#")+colours[kwtyp-1]+ \
                            (sel==4?"\"":"")+tagend+curword+(dontadd?"":wxString::Format("%c",j00_n00b));
                }
                else
                    output+=curword+(dontadd?"":wxString::Format("%c",j00_n00b));
                color=kwtyp-1;
                bold=true;
                italic=false;
            }
            else if(dotags&&!commenting&&!quoting&&isNumeric(curword)) {
                if(color!=7) {
                    if(color!=-1)
                        output+=tagstart+(sel==4?"/span":"/color")+tagend;
                    if(bold)
                        output+=tagstart+"/b"+tagend;
                    if(italic)
                        output+=tagstart+"/i"+tagend;
                    output+=tagstart+(sel==4?"span style=\"color:#":"color=#")+colours[7]+ \
                            (sel==4?"\"":"")+tagend+curword+(dontadd?"":wxString::Format("%c",j00_n00b));
                }
                else
                    output+=curword+(dontadd?"":wxString::Format("%c",j00_n00b));
                color=7;
                bold=false;
                italic=false;
            }
            else if(dokeyws&&!commenting&&!quoting&&isKeyword(curword)!=0) {
                switch(sel) {
                    case 0:
                    curword=curword.Left(1).MakeUpper()+curword.Mid(1).MakeLower();
                    break;
                    case 1:
                    curword=curword.MakeUpper();
                    break;
                    case 2:
                    curword=curword.MakeLower();
                    break;
                }
                output+=curword+(dontadd?"":wxString::Format("%c",j00_n00b));
            }
            else {
                if(!commenting&&!quoting) {
                    if(color!=-1)
                        output+=tagstart+(sel==4?"/span":"/color")+tagend;
                    if(bold)
                        output+=tagstart+"/b"+tagend;
                    if(italic)
                        output+=tagstart+"/i"+tagend;
                    color=-1;
                }
                bold=false;
                italic=false;
                output+=curword+(dontadd?"":wxString::Format("%c",j00_n00b));
            }
            curword="";
            int mylen=output.Len();
            if(!commenting&&!quoting&&j00_n00b=='\'') {
                commenting=true;
                if(dotags) {
                    output=output.Left(mylen-1);
                    if(color!=-1)
                        output+=tagstart+(sel==4?"/span":"/color")+tagend;
                    if(bold)
                        output+=tagstart+"/b"+tagend;
                    if(italic)
                        output+=tagstart+"/i"+tagend;
                    output+=tagstart+"i"+tagend+tagstart+(sel==4?"span style=\"color:#":"color=#")+colours[4]+ \
                            (sel==4?"\"":"")+tagend;
                    output+=j00_n00b;
                }
            }
            else if((j00_n00b=='\n'||j00_n00b=='\r')&&commenting) {
                commenting=false;
                color=-1;
                bold=false;
                italic=false;
                if(dotags) {
                    output=output.Left(mylen-1);
                    output+=tagstart+(sel==4?"/span":"/color")+tagend+tagstart+"/i"+tagend;
                    output+=j00_n00b;
                }
            }
            if(!commenting&&!quoting&&j00_n00b=='\"') {
                if(dotags) {
                    output=output.Left(mylen-1);
                    if(color!=-1)
                        output+=tagstart+(sel==4?"/span":"/color")+tagend;
                    if(bold)
                        output+=tagstart+"/b"+tagend;
                    if(italic)
                        output+=tagstart+"/i"+tagend;
                    output+=tagstart+(sel==4?"span style=\"color:#":"color=#")+colours[6]+ \
                            (sel==4?"\"":"")+tagend;
                    output+=j00_n00b;
                }
                quoting=true;
            }
            else if((j00_n00b=='\"'||j00_n00b=='\n'||j00_n00b=='\r')&&quoting) {
                quoting=false;
                color=-1;
                bold=false;
                italic=false;
                if(dotags)
                    output+=tagstart+(sel==4?"/span":"/color")+tagend;
            }
            if(!commenting&&!quoting&&j00_n00b=='#'&&(i==0||(output.Mid(output.Len()-2,1)=="\n"||output.Mid(output.Len()-2,1)=="\r"))) {
                output=output.Left(mylen-1);
                if(color!=-1)
                    output+=tagstart+(sel==4?"/span":"/color")+tagend;
                if(bold)
                    output+=tagstart+"/b"+tagend;
                if(italic)
                    output+=tagstart+"/i"+tagend;
                color=-1;
                bold=false;
                italic=false;
                if(dotags)
                    output+=tagstart+(sel==4?"span style=\"color:#":"color=#")+colours[8]+ \
                            (sel==4?"\"":"")+tagend;
                output+=j00_n00b;
                for(i++;guts.GetChar(i)!='\n'&&i<teh_len;i++) {
                    output+=guts.Mid(i,1);
                }
                output+='\n';
                if(dotags)
                    output << tagstart+(sel==4?"/span":"/color")+tagend << guts.GetChar(i);
            }
            else if(dotags&&!commenting&&!quoting&&j00_n00b=='#') {
                output=output.Left(mylen-1);
                output+=tagstart+"b"+tagend+tagstart+(sel==4?"span style=\"color:#":"color=#")+colours[5]+ \
                        (sel==4?"\"":"")+tagend;
                output+=j00_n00b;
                output+=tagstart+(sel==4?"/span":"/color")+tagend+tagstart+"/b"+tagend;
            }
            if(dotags&&((j00_n00b>39&&j00_n00b<46)||j00_n00b==47||
                        (j00_n00b>57&&j00_n00b<64)||j00_n00b==92||j00_n00b==94||
                        (j00_n00b>122&&j00_n00b<128))&&!commenting&&!quoting) {
                output=output.Left(mylen-1);
                output+=tagstart+"b"+tagend+tagstart+(sel==4?"span style=\"color:#":"color=#")+colours[5]+ \
                        (sel==4?"\"":"")+tagend;
                output+=j00_n00b;
                output+=tagstart+(sel==4?"/span":"/color")+tagend+tagstart+"/b"+tagend;
            }
        }
        if(i+1==real_len) {
            guts+="\n";
            teh_len++;
            dontadd=true;
        }
    }
    if (sel < 3) {
        buff = stc->buff;
        buff->SetPositions(stc->GetSelectionStart(), stc->GetSelectionEnd());
        buff->SetLine(stc->GetFirstVisibleLine());
        buff->SetCaretPos(stc->GetCurrentPos());
        stc->SetText(output);
        stc->ScrollToLine(buff->GetLine());
        stc->SetCurrentPos(buff->GetCaretPos());
        stc->SetSelectionStart(buff->GetSelectionStart());
        stc->SetSelectionEnd(buff->GetSelectionEnd());
    }
    else {
        if(color!=-1)
            output+=tagstart+(sel==4?"/span":"/color")+tagend;
        if(bold)
            output+=tagstart+"/b"+tagend;
        if(italic)
            output+=tagstart+"/i"+tagend;
        if     (sel==4)
            output+="</pre></body></html>";
        else if(sel==3)
            output+="[/size][/quote]";
        Parent->NewSTCPage("",true, 1);
        stc->SetText(output);
    }
}