void QsciEditor::showCustomMenu( const QPoint &position ) {

	contextMenu.clear();

	QMenu formatMenu( "&Format" );

	formatMenu.addAction( changeFontAct );
	if ( hasSelectedText() )
		formatMenu.addAction( toggleCaseAct );

	contextMenu.addMenu( &formatMenu );
	contextMenu.addSeparator();

	if ( hasSelectedText() ) {
		contextMenu.addAction( cutAct );
		contextMenu.addAction( copyAct );
	}

	if ( SendScintilla( SCI_CANPASTE ) )
		contextMenu.addAction( pasteAct );

	if ( hasSelectedText() )
		contextMenu.addAction( deleteAct );

	if ( not text().isEmpty() or hasSelectedText() )
		contextMenu.addSeparator();

	if ( not text().isEmpty() )
		contextMenu.addAction( selectAct );

	if ( hasSelectedText() )
		contextMenu.addAction( deselectAct );

	if ( isUndoAvailable() or isRedoAvailable() )
		contextMenu.addSeparator();

	if ( isUndoAvailable() )
		contextMenu.addAction( undoAct );

	if ( isRedoAvailable() )
		contextMenu.addAction( redoAct );

	if ( not text().isEmpty() ) {
		contextMenu.addSeparator();
		contextMenu.addAction( searchAct );
		contextMenu.addAction( replaceAct );
	}

	contextMenu.exec( QWidget::mapToGlobal( position ) );
};
Example #2
0
void iDraw()
{
	int m,n;
	iClear();
	iSetcolor(1,1,1);
	iFilledRectangle(1,1,width-19,height-18);		//draw text box
	iSetcolor(0,0,0);
	iRectangle(1,1,width-19,height-19);				//draw text boundary

	if (selflag)
	{
		for (int l=selSI; l<=selEI; l++)
		{
			int sx = (l==selSI)?( (selSJ==0)?3:selSJ*charSpace) : 3;
			int sy = height - 17 - (l+1-s)*lineSpace - 5;
			int w;
			if (l==selSI)
				w = (selSI == selEI) ? selEJ-selSJ : strlen(str+l*charMax*sizeof(char))-selSJ;
			else if (l==selEI)
				w = selEJ;
			else
				w = (strlen(str+l*charMax*sizeof(char))==0)?1:strlen(str+l*charMax*sizeof(char));

			iSetcolor(.8,.8,.9);
			iFilledRectangle(sx,sy,w*charSpace,lineSpace);
		}
	}

	iSetcolor(0,0,0);
	for (m=height-17-lineSpace, n=s; n<=imax; m-=lineSpace, n++)
	{
		iText(3, m, str+n*charMax*sizeof(char),font);		//print text
	}

	if (fOpen)
	{
		fileopen();
		iSetcolor(0,0,0);
		iText((width-15)/2-135,(height-19)/2+62,subTemp+r);		//print file open text
	}
	else if (fsave)
	{
		filesave();
		iSetcolor(0,0,0);
		iText((width-15)/2-135,(height-19)/2+62,subTemp+r);	//print file save as text
	}
	else if (aboutR)
	{
		aboutRword();
	}

	cursor();							//draw cursor		

	iSetcolor(.9,.9,.9);
	iFilledRectangle(3,height-17,width-19,17);

	iSetcolor(0,0,0);
	iLine(2,height-18,width-19,height-18);

	iSetcolor(0,0,0);
	iText(5,height-12,"File",GLUT_BITMAP_HELVETICA_12);			

	iSetcolor(0,0,0);
	iText(45,height-12,"Edit",GLUT_BITMAP_HELVETICA_12);

	iSetcolor(0,0,0);
	iText(85,height-12,"Format",GLUT_BITMAP_HELVETICA_12);

	iSetcolor(0,0,0);
	iText(141,height-12,"Help",GLUT_BITMAP_HELVETICA_12);		//draw menus
		
	if (menuflag == 1)
	{
		fileMenu();					//draw file drop down menu
	}
	else if (menuflag == 2)
	{
		editMenu();					//draw edit drop down menu
	}
	else if (menuflag == 3)
	{
		formatMenu();				//draw format drop down menu
	}
	else if (menuflag == 4)
	{
		helpMenu();					//draw help drop down menu
	}


	if (fontflag)
	{
		fontlist();						//draw font list
	}
	else if (saveM)
	{
		saveMessage();			//message box while exitting
	}

	scrollbar();                  // draw scrollbar



	if (load)
		loading();				//load window
}