• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++ scintilla_send_message函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C++中scintilla_send_message函数的典型用法代码示例。如果您正苦于以下问题:C++ scintilla_send_message函数的具体用法?C++ scintilla_send_message怎么用?C++ scintilla_send_message使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了scintilla_send_message函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: rmwhspln

/* Remove Whitespace Lines */
gint
rmwhspln(ScintillaObject *sci, gint line_num, gint end_line_num)
{
	gint indent;                       /* indent position */
	gint changed = 0;                  /* number of lines removed */

	while(line_num <= end_line_num)    /* loop through lines */
	{
		indent = scintilla_send_message(sci,
									SCI_GETLINEINDENTPOSITION,
									line_num, 0);

		/* check if the posn of indentation is also the end of line posn */
		if(indent -
		   sci_get_position_from_line(sci, line_num) ==
		   sci_get_line_end_position (sci, line_num) -
		   sci_get_position_from_line(sci, line_num))
		{
			scintilla_send_message(sci,
					   SCI_DELETERANGE,
					   sci_get_position_from_line(sci, line_num),
					   sci_get_line_length(sci, line_num));

			line_num--;
			end_line_num--;
			changed++;
		}
		line_num++;

	}

	/* return the number of lines deleted */
	return -changed;
}
开发者ID:DaveMDS,项目名称:geany-plugins,代码行数:35,代码来源:linefunctions.c


示例2: editor_open_position

/*
 * opens position in a editor 
 */
void editor_open_position(const gchar *filename, int line)
{
	GeanyDocument* doc = NULL;
	gboolean already_open = (doc = document_get_current()) && !strcmp(DOC_FILENAME(doc), filename);

	if (!already_open)
		doc = document_open_file(filename, FALSE, NULL, NULL);

	if (doc)
	{
		/* temporarily set debug caret policy */
		scintilla_send_message(doc->editor->sci, SCI_SETYCARETPOLICY, CARET_SLOP | CARET_JUMPS | CARET_EVEN, 3);

		sci_goto_line(doc->editor->sci, line - 1, TRUE);

		/* revert to default edit caret policy */
		scintilla_send_message(doc->editor->sci, SCI_SETYCARETPOLICY, CARET_EVEN, 0);

		scintilla_send_message(doc->editor->sci, SCI_SETFOCUS, TRUE, 0);
	}
	else
	{
		dialogs_show_msgbox(GTK_MESSAGE_ERROR, _("Can't find a source file \"%s\""), filename);
	}
}
开发者ID:BYC,项目名称:geany-plugins,代码行数:28,代码来源:utils.c


示例3: create_selection

static void create_selection(ScintillaObject *sci, int anchor, int anchor_space,
	gboolean rectangle)
{
	int cursor = sci_get_current_position(sci);
	int cursor_space = sci_get_cursor_space(sci);

	if (rectangle)
	{
		sci_set_selection_mode(sci, SC_SEL_RECTANGLE);
		sci_set_anchor(sci, anchor);
		/* sci_set_current_position() sets anchor = cursor, bypass */
		scintilla_send_message(sci, SCI_SETCURRENTPOS, cursor, 0);
	}
	else
	{
		sci_set_selection_mode(sci, SC_SEL_STREAM);
		scintilla_send_message(sci, SCI_SETSEL, anchor, cursor);
	}

	sci_set_anchor_space(sci, anchor_space);
	sci_set_cursor_space(sci, cursor_space);

	/* SCI bug: CANCEL may reduce a rectangle selection to a single line */
	if (rectangle)
		sci_set_selection_mode(sci, SC_SEL_RECTANGLE);
	else
		sci_send_command(sci, SCI_CANCEL);
}
开发者ID:DaveMDS,项目名称:geany-plugins,代码行数:28,代码来源:extrasel.c


示例4: on_mouse_leave

static gboolean on_mouse_leave(GtkWidget *widget, GdkEvent *event, gpointer user_data)
{
	ScintillaObject *so = (ScintillaObject*)widget;
	if (scintilla_send_message (so, SCI_CALLTIPACTIVE, 0, 0))
	{
		g_signal_handler_disconnect(G_OBJECT(widget), leave_signal);
		scintilla_send_message (so, SCI_CALLTIPCANCEL, 0, 0);
	}
	return FALSE;
}
开发者ID:BYC,项目名称:geany-plugins,代码行数:10,代码来源:callbacks.c


示例5: highlight_tag

static void highlight_tag(ScintillaObject *sci, gint openingBracket,
                          gint closingBracket, gint color)
{
    scintilla_send_message(sci, SCI_SETINDICATORCURRENT, INDICATOR_TAGMATCH, 0);
    scintilla_send_message(sci, SCI_INDICSETSTYLE,
                            INDICATOR_TAGMATCH, INDIC_ROUNDBOX);
    scintilla_send_message(sci, SCI_INDICSETFORE, INDICATOR_TAGMATCH, rgb2bgr(color));
    scintilla_send_message(sci, SCI_INDICSETALPHA, INDICATOR_TAGMATCH, 60);
    scintilla_send_message(sci, SCI_INDICATORFILLRANGE,
                            openingBracket, closingBracket-openingBracket+1);
}
开发者ID:DaveMDS,项目名称:geany-plugins,代码行数:11,代码来源:pair_tag_highlighter.c


示例6: prefs_apply

void prefs_apply(GeanyDocument *doc)
{
	gint i;
	ScintillaObject *sci = doc->editor->sci;
	MarkerStyle *style = pref_marker_styles;

	for (i = pref_sci_marker_first; i < pref_sci_marker_first + MARKER_COUNT; i++, style++)
	{
		scintilla_send_message(sci, SCI_MARKERDEFINE, i, style->mark);
		scintilla_send_message(sci, SCI_MARKERSETFORE, i, style->fore);
		scintilla_send_message(sci, SCI_MARKERSETBACK, i, style->back);
		scintilla_send_message(sci, SCI_MARKERSETALPHA, i, style->alpha);
	}
}
开发者ID:BYC,项目名称:geany-plugins,代码行数:14,代码来源:prefs.c


示例7: DeleteMarker

static void DeleteMarker(GeanyDocument* doc,gint bookmarkNumber,gint markerNumber)
{
	guint32 *markers;
	ScintillaObject *sci=doc->editor->sci;

	/* remove marker */
	scintilla_send_message(sci,SCI_MARKERDELETEALL,markerNumber,0);
	scintilla_send_message(sci,SCI_MARKERDEFINE,markerNumber,SC_MARK_AVAILABLE);

	/* update record of which markers are being used */
	markers=GetMarkersUsed(sci);
	(*markers)-=1<<markerNumber;
	g_object_set_data(G_OBJECT(sci),"Geany_Numbered_Bookmarks_Used",(gpointer)markers);
}
开发者ID:R1dO,项目名称:geany-plugins,代码行数:14,代码来源:geanynumberedbookmarks.c


示例8: geany_xml_encode_selection

/* geany_xml_encode_selection
 * 
 * Encode the XML entities in the current selection.
 */
void geany_xml_encode_selection()
{
  GeanyDocument* document = document_get_current();
  if (document)
  {
    ScintillaObject* sci = document->editor->sci;
    
    unsigned long sel_beg = scintilla_send_message(sci, SCI_GETSELECTIONSTART, 0, 0);
    unsigned long sel_end = scintilla_send_message(sci, SCI_GETSELECTIONEND, 0, 0);
    
    int replaced = geany_xml_encode(document, sel_beg, sel_end);
    
    // Display notification in status area.
    geany_xml_encode_notify(document, replaced);
  }
}
开发者ID:DarkerStar,项目名称:geany-xml-encode,代码行数:20,代码来源:encode.c


示例9: rmemtyln

/* Remove Empty Lines */
gint
rmemtyln(ScintillaObject *sci, gint line_num, gint end_line_num)
{
	gint  changed = 0;     /* number of lines removed */

	while(line_num <= end_line_num)    /* loop through lines */
	{
		/* check if the first posn of the line is also the end of line posn */
		if(sci_get_position_from_line(sci, line_num) ==
		   sci_get_line_end_position (sci, line_num))
		{
			scintilla_send_message(sci,
					   SCI_DELETERANGE,
					   sci_get_position_from_line(sci, line_num),
					   sci_get_line_length(sci, line_num));

			line_num--;
			end_line_num--;
			changed++;
		}
		line_num++;
	}

	/* return the number of lines deleted */
	return -changed;
}
开发者ID:DaveMDS,项目名称:geany-plugins,代码行数:27,代码来源:linefunctions.c


示例10: ApplyBookmarks

static void ApplyBookmarks(GeanyDocument* doc,FileData *fd)
{
	gint i,iLineCount,m;
	GtkWidget *dialog;
	ScintillaObject* sci=doc->editor->sci;

	iLineCount=scintilla_send_message(sci,SCI_GETLINECOUNT,0,0);

	for(i=0;i<10;i++)
		if(fd->iBookmark[i]!=-1 && fd->iBookmark[i]<iLineCount)
		{
			m=NextFreeMarker(doc);
			/* if run out of markers report this */
			if(m==-1)
			{
				dialog=gtk_message_dialog_new(GTK_WINDOW(geany->main_widgets->window),
				                              GTK_DIALOG_DESTROY_WITH_PARENT,
				                              GTK_MESSAGE_ERROR,GTK_BUTTONS_NONE,
_("Unable to apply all markers to '%s' as all being used."),
				                              doc->file_name);
				gtk_dialog_add_button(GTK_DIALOG(dialog),_("_Okay"),GTK_RESPONSE_OK);
				gtk_dialog_run(GTK_DIALOG(dialog));
				gtk_widget_destroy(dialog);
				return;
			}

			/* otherwise ok to set marker */
			SetMarker(doc,i,m,fd->iBookmark[i]);
		}
}
开发者ID:R1dO,项目名称:geany-plugins,代码行数:30,代码来源:geanynumberedbookmarks.c


示例11: on_sci_notify

static void on_sci_notify(ScintillaObject *sci, gint param,
                          SCNotification *nt, gpointer data)
{
    gint line;

    switch (nt->nmhdr.code)
    {
    /* adapted from editor.c: on_margin_click() */
    case SCN_MARGINCLICK:
        /* left click to marker margin toggles marker */
        if (nt->margin == 1)
        {
            gboolean set;
            gint marker = 1;

            line = sci_get_line_from_position(sci, nt->position);
            set = sci_is_marker_set_at_line(sci, line, marker);
            if (!set)
                sci_set_marker_at_line(sci, line, marker);
            else
                sci_delete_marker_at_line(sci, line, marker);
        }
        /* left click on the folding margin to toggle folding state of current line */
        if (nt->margin == 2)
        {
            line = sci_get_line_from_position(sci, nt->position);
            scintilla_send_message(sci, SCI_TOGGLEFOLD, line, 0);
        }
        break;

    default:
        break;
    }
}
开发者ID:giuspen,项目名称:geany,代码行数:34,代码来源:splitwindow.c


示例12: on_query_tooltip

static gboolean on_query_tooltip(G_GNUC_UNUSED GtkWidget *widget, gint x, gint y,
	gboolean keyboard_mode, GtkTooltip *tooltip, GeanyEditor *editor)
{
	gint pos = keyboard_mode ? sci_get_current_position(editor->sci) :
		scintilla_send_message(editor->sci, SCI_POSITIONFROMPOINT, x, y);

	if (pos >= 0)
	{
		if (pos == last_pos)
		{
			gtk_tooltip_set_text(tooltip, output);
			return show;
		}
		else if (pos != peek_pos)
		{
			if (query_id)
				g_source_remove(query_id);
			else
				scid_gen++;

			peek_pos = pos;
			query_id = plugin_timeout_add(geany_plugin, pref_tooltips_send_delay * 10,
				tooltip_launch, editor);
		}
	}

	return FALSE;
}
开发者ID:DaveMDS,项目名称:geany-plugins,代码行数:28,代码来源:tooltip.c


示例13: IupScintillaSendMessage

sptr_t IupScintillaSendMessage(Ihandle* ih, unsigned int iMessage, uptr_t wParam, sptr_t lParam)
{
#ifdef GTK
  return scintilla_send_message(SCINTILLA(ih->handle), iMessage, wParam, lParam);
#else
  return SendMessage(ih->handle, iMessage, wParam, lParam);
#endif
}
开发者ID:sanikoyes,项目名称:lua-tools,代码行数:8,代码来源:iup_scintilla.cpp


示例14: sc_speller_process_line

gint sc_speller_process_line(GeanyDocument *doc, gint line_number, const gchar *line)
{
	gint pos_start, pos_end;
	gint wstart, wend;
	GString *str;
	gint suggestions_found = 0;
	gchar c;

	g_return_val_if_fail(sc_speller_dict != NULL, 0);
	g_return_val_if_fail(doc != NULL, 0);
	g_return_val_if_fail(line != NULL, 0);

	str = g_string_sized_new(256);

	pos_start = sci_get_position_from_line(doc->editor->sci, line_number);
	pos_end = sci_get_position_from_line(doc->editor->sci, line_number + 1);

	while (pos_start < pos_end)
	{
		wstart = scintilla_send_message(doc->editor->sci, SCI_WORDSTARTPOSITION, pos_start, TRUE);
		wend = scintilla_send_message(doc->editor->sci, SCI_WORDENDPOSITION, wstart, FALSE);
		if (wstart == wend)
			break;
		c = sci_get_char_at(doc->editor->sci, wstart);
		/* hopefully it's enough to check for these both */
		if (ispunct(c) || isspace(c))
		{
			pos_start++;
			continue;
		}

		/* ensure the string has enough allocated memory */
		if (str->len < (guint)(wend - wstart))
			g_string_set_size(str, wend - wstart);

		sci_get_text_range(doc->editor->sci, wstart, wend, str->str);

		suggestions_found += sc_speller_check_word(doc, line_number, str->str, wstart, wend);

		pos_start = wend + 1;
	}

	g_string_free(str, TRUE);
	return suggestions_found;
}
开发者ID:oHunewald,项目名称:sample_app,代码行数:45,代码来源:speller.c


示例15: on_document_open

/*
 * 	Occures on document opening.
 * 	Used to set breaks markers 
 */
void on_document_open(GObject *obj, GeanyDocument *doc, gpointer user_data)
{
	/*set markers*/
	markers_set_for_document(doc->editor->sci);

	/*set dwell interval*/
	scintilla_send_message(doc->editor->sci, SCI_SETMOUSEDWELLTIME, 500, 0);

	/* set tab size for calltips */
	scintilla_send_message(doc->editor->sci, SCI_CALLTIPUSESTYLE, 20, (long)NULL);

	/* set breakpoint and frame markers */
	set_markers_for_file(DOC_FILENAME(doc));

	/* if debug is active - tell the debug module that a file was opened */
	if (DBS_IDLE != debug_get_state())
		debug_on_file_open(doc);
}
开发者ID:BYC,项目名称:geany-plugins,代码行数:22,代码来源:callbacks.c


示例16: set_line_numbers

/* line numbers visibility */
static void set_line_numbers(ScintillaObject * sci, gboolean set)
{
    if (set)
    {
        gchar tmp_str[15];
        gint len = scintilla_send_message(sci, SCI_GETLINECOUNT, 0, 0);
        gint width;

        g_snprintf(tmp_str, 15, "_%d", len);
        width = scintilla_send_message(sci, SCI_TEXTWIDTH, STYLE_LINENUMBER, (sptr_t) tmp_str);
        scintilla_send_message(sci, SCI_SETMARGINWIDTHN, 0, width);
        scintilla_send_message(sci, SCI_SETMARGINSENSITIVEN, 0, FALSE); /* use default behaviour */
    }
    else
    {
        scintilla_send_message(sci, SCI_SETMARGINWIDTHN, 0, 0);
    }
}
开发者ID:giuspen,项目名称:geany,代码行数:19,代码来源:splitwindow.c


示例17: markers_remove_all

/*
 * removes all markers from GeanyDocument
 */
void markers_remove_all(GeanyDocument *doc)
{
	static int markers[] = { M_BP_ENABLED, M_BP_DISABLED, M_BP_CONDITIONAL, M_CI_BACKGROUND, M_CI_ARROW, M_FRAME };
	int i = 0, size = sizeof(markers) / sizeof(int);
	for (; i < size; i++)
	{
		scintilla_send_message(doc->editor->sci, SCI_MARKERDELETEALL, markers[i], 0);
	}
}
开发者ID:geh,项目名称:geany-plugins,代码行数:12,代码来源:markers.c


示例18: markers_remove_frame

/*
 * removes frame marker
 */
void markers_remove_frame(char* file, int line)
{
	GeanyDocument *doc = document_find_by_filename(file);
	if (doc)
	{
		sci_delete_marker_at_line(doc->editor->sci, line - 1, M_FRAME);
		scintilla_send_message(doc->editor->sci, SCI_SETFOCUS, TRUE, 0);
	}
}
开发者ID:geh,项目名称:geany-plugins,代码行数:12,代码来源:markers.c


示例19: markers_remove_current_instruction

/*
 * removes current instruction marker
 */
void markers_remove_current_instruction(char* file, int line)
{
	GeanyDocument *doc = document_find_by_filename(file);
	if (doc)
	{
		sci_delete_marker_at_line(doc->editor->sci, line - 1, M_CI_ARROW);
		sci_delete_marker_at_line(doc->editor->sci, line - 1, M_CI_BACKGROUND);
		scintilla_send_message(doc->editor->sci, SCI_SETFOCUS, TRUE, 0);
	}
}
开发者ID:geh,项目名称:geany-plugins,代码行数:13,代码来源:markers.c


示例20: menu_addword_item_activate_cb

static void menu_addword_item_activate_cb(GtkMenuItem *menuitem, gpointer gdata)
{
    gint startword, endword, i, doc_len;
    ScintillaObject *sci;
    GString *str;
    gboolean ignore = GPOINTER_TO_INT(gdata);

    if (clickinfo.doc == NULL || clickinfo.word == NULL || clickinfo.pos == -1)
        return;

    /* if we ignore the word, we add it to the current session, to ignore it
     * also for further checks*/
    if (ignore)
        sc_speller_add_word_to_session(clickinfo.word);
    /* if we do not ignore the word, we add the word to the personal dictionary */
    else
        sc_speller_add_word(clickinfo.word);

    /* Remove all indicators on the added/ignored word */
    sci = clickinfo.doc->editor->sci;
    str = g_string_sized_new(256);
    doc_len = sci_get_length(sci);
    for (i = 0; i < doc_len; i++)
    {
        startword = scintilla_send_message(sci, SCI_INDICATORSTART, 0, i);
        if (startword >= 0)
        {
            endword = scintilla_send_message(sci, SCI_INDICATOREND, 0, startword);
            if (startword == endword)
                continue;

            if (str->len < (guint)(endword - startword + 1))
                str = g_string_set_size(str, endword - startword + 1);
            sci_get_text_range(sci, startword, endword, str->str);

            if (strcmp(str->str, clickinfo.word) == 0)
                sci_indicator_clear(sci, startword, endword - startword);

            i = endword;
        }
    }
    g_string_free(str, TRUE);
}
开发者ID:AtalAkbari,项目名称:geany-plugins,代码行数:43,代码来源:gui.c



注:本文中的scintilla_send_message函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ sciprint函数代码示例发布时间:2022-05-30
下一篇:
C++ sci_out函数代码示例发布时间:2022-05-30
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap