; Module/File: Editor_ClipboardOnCommand.pb ; Function: EditorGadget: Clipboard-Action on command - Linux gtk2/gtk3 ; Author: Omi ; Date: Nov. 29, 2014 ; Version: 0.1 ; Target Compiler: PureBasic 5.22/5.31/5.40 ; Target OS: Linux: (X/K/L)ubuntu, Mint, 32/64, Ascii/Uni ;-------------------------------------------------------------- ; ctrl-c, ctrl-x, Ctrl-v works automatically ; see here same behaviour on command EnableExplicit ImportC "" gtk_button_set_image(*button.GtkButton, *image.GtkWidget) gtk_button_set_image_position(*button.GtkButton, position) gtk_image_clear(*image.GtkWidget) gtk_image_new_from_stock(stock_id.p-utf8, size); to gtk3.1 ; gtk_image_new_from_icon_name(stock_id.p-utf8, size); gtk2.6 up g_object_set(*object.GObject, property_name.p-utf8, *data, v= 0) g_signal_emit_by_name(*inst, name.p-utf8, value= #Null, term= #Null) EndImport ; Object constants #MainWin = 0 #BG_ClpbrdCopy = 0 #BG_ClpbrdCut = 1 #BG_ClpbrdPaste= 2 #Editor1 = 3 #WinX= 0 #WinY= 0 #WinW= 300 #WinH= 200 Global.i gEvent, gQuit Global.s S1= "Dies ist ein mehrzeiliger Text in dem das Ein- und Auschalten der Cursordarstellung innerhalb eines EditorGadgets per Toggle-" + "Button gezeigt wird, da die Darstellung eines Cursors innerhalb eines'read-only'-Textes wenig Sinn macht!" + #LF$ + "Hier wird demonstriert, wie der Einzug am Anfang von Absätzen gesetzt wird!" + #LF$ + "Wird jede Zeile in ein eigenes Item gesetzt, wird jede Zeile eingezogen!" Global *image1, *image2, *image3 Procedure GetStockIcons() ; ----- use stock-images ... *image1= gtk_image_new_from_stock("gtk-copy", #GTK_ICON_SIZE_MENU); gtk3: gtk_image_new_from_icon_name *image2= gtk_image_new_from_stock("gtk-cut", #GTK_ICON_SIZE_MENU) *image3= gtk_image_new_from_stock("gtk-paste", #GTK_ICON_SIZE_MENU) EndProcedure Procedure ButtonImages_SystemActivate(Show); call if no image appears g_object_set(gtk_settings_get_default_(), "gtk-button-images", Show, #Null) EndProcedure Procedure ButtonGadget_ToIcon(Gadget, *Pic, Alignment) gtk_button_set_image(GadgetID(Gadget), *Pic) gtk_button_set_image_position(GadgetID(Gadget), Alignment) EndProcedure If OpenWindow(#MainWin, #WinX, #WinY, #WinW, #WinH, "Editor - clipboard-action on command", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) GetStockIcons() ButtonGadget(#BG_ClpbrdCopy, 5, 2, 28, 28, "") ButtonGadget_ToIcon(#BG_ClpbrdCopy, *image1, #GTK_POS_LEFT) ButtonGadget(#BG_ClpbrdCut, 35, 2, 28, 28, "") ButtonGadget_ToIcon(#BG_ClpbrdCut, *image2, #GTK_POS_LEFT) ButtonGadget(#BG_ClpbrdPaste, 65, 2, 28, 28, "") ButtonGadget_ToIcon(#BG_ClpbrdPaste, *image3, #GTK_POS_LEFT) EditorGadget(#Editor1, 5, 30, #WinW-10, #WinH-34) AddGadgetItem(#Editor1, -1, S1) SetActiveGadget(#Editor1) gtk_text_view_set_wrap_mode_(GadgetID(#Editor1), #GTK_WRAP_WORD); wortweiser Zeilenumbruch Repeat gEvent= WaitWindowEvent() Select gEvent Case #PB_Event_CloseWindow gQuit= #True Case #PB_Event_Gadget Select EventGadget() ;clipboard-action on command ... ;******************************** Case #BG_ClpbrdCopy g_signal_emit_by_name(GadgetID(#Editor1), "copy-clipboard") Case #BG_ClpbrdCut g_signal_emit_by_name(GadgetID(#Editor1), "cut-clipboard") Case #BG_ClpbrdPaste g_signal_emit_by_name(GadgetID(#Editor1), "paste-clipboard") ;******************************** EndSelect EndSelect Until gQuit EndIf gtk_image_clear(*image1) gtk_image_clear(*image2) gtk_image_clear(*image3) ; IDE Options = PureBasic 5.40 LTS Beta 9 (Linux - x86) ; CursorPosition = 42 ; FirstLine = 25 ; Folding = - ; EnableUnicode ; EnableXP ; CurrentDirectory = /home/charly-xubuntu/Programming/PureBasic/purebasic/