Selection dans stringgadget

Codes specifiques à Linux
Avatar de l’utilisateur
microdevweb
Messages : 1798
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Selection dans stringgadget

Message par microdevweb »

Bonjour,
Quel est l'équivalent Linux de ceci (Windows)

Code : Tout sélectionner

SendMessage_(GadgetID(Gadget),#EM_GETSEL,@PosStart,@PosEnd)
 SendMessage_(GadgetID(Gadget),#EM_SETSEL,PosStart,PosEnd)
Merci
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Avatar de l’utilisateur
Vera
Messages : 45
Inscription : sam. 12/sept./2015 10:31
Localisation : Allemagne

Re: Selection dans stringgadget

Message par Vera »

Bonsoir microdevweb,

Ici j'ai trouvé une solution pour GET SELECTION, by Omi: EditField_GetSelection.pb

Code : Tout sélectionner

;======================================================================
; Module/File:     EditField_GetSelection.pb
; Function:        StringGadget: gets selected area with UTF-8 - Linux
; Author:          Omi
; Date:            Oct. 14, 2014
; Version:         0.2
; Target Compiler: PureBasic 5.22, 5.30
; Target OS:       (X/K)ubuntu 32/64, Ascii/Uni
; License:         Free, unrestricted, no warranty
;======================================================================

EnableExplicit

ImportC ""
	g_signal_connect(*instance, detailed_signal.p-ascii, *c_handler, *pdata, destroy= 0, flags= 0) As "g_signal_connect_data"
EndImport

; Object constants
#MainWin= 0
#But   = 0
#String = 1

#WinX=300
#WinY=200
#WinW=250
#WinH=200

Global.i gEvent, gQuit, gCounter

;- Functions ...
ProcedureC Edit_Changed(*widget, signal, user_data)
; 	Debug signal
; 	Debug user_data
; Debug gCounter
; gCounter+ 1
EndProcedure


Procedure.s SelectedStringpart(Gadget)
	Protected start_pos, end_pos
	Protected *lMem
	If gtk_editable_get_selection_bounds_(GadgetID(Gadget), @start_pos, @end_pos)
		*lMem= gtk_editable_get_chars_(GadgetID(Gadget), start_pos, end_pos)
		ProcedureReturn PeekS(*lMem, -1, #PB_UTF8)
	Else
		ProcedureReturn ""
	EndIf
EndProcedure


;- Example ...

If OpenWindow(#MainWin, #WinX, #WinY, #WinW, #WinH, "StringGadget-Cursorpos", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
	
	StringGadget(#String, 10, 5, 230, 25, "Select a part of this string (UTF-8) ÄÖÜ")
	ButtonGadget(#But, 10, 35, 200, 25, "then push me")
	SetActiveGadget(#String)
	
	g_signal_connect(GadgetID(#String), "changed", @Edit_Changed(), 25)
	
	Repeat
		gEvent= WaitWindowEvent()
		
		Select gEvent
				
			Case #PB_Event_CloseWindow
				gQuit= #True
				
			Case #PB_Event_Gadget
				If EventGadget()= #but
					Debug SelectedStringpart(#String);        UTF8 in Ascii rückgewandelt (reverted)
				EndIf
				
		EndSelect
	Until gQuit
EndIf
Mais parmi les autres codes je ne pouvais pas trouver l'opposé.
Faites-moi savoir, s'il vous plaît, si mon français n'est pas assez compréhensible. ~ merci ~
Le texte encadré est d'un traducteur.
Avatar de l’utilisateur
microdevweb
Messages : 1798
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Re: Selection dans stringgadget

Message par microdevweb »

Thanks Vera for your searching, i look this code but im not linux so i don't try this.
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Avatar de l’utilisateur
Vera
Messages : 45
Inscription : sam. 12/sept./2015 10:31
Localisation : Allemagne

Re: Selection dans stringgadget

Message par Vera »

microdevweb a écrit :Thanks Vera for your searching, i look this code but im not linux so i don't try this.
Why do you ask for it?
Why do you ask in two forums? -> english forum request

Why do you make 3 members come to your aid knowing you won't test any code that runs on Linux?
Pourquoi le demandez-vous ?
Pourquoi demandez-vous dans deux forums ?-> demande de forum anglaise

Pourquoi faites-vous 3 membres venir à votre aide en sachant que vous n'évaluerez pas de code qui court sur Linux ?
Faites-moi savoir, s'il vous plaît, si mon français n'est pas assez compréhensible. ~ merci ~
Le texte encadré est d'un traducteur.
Avatar de l’utilisateur
microdevweb
Messages : 1798
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Re: Selection dans stringgadget

Message par microdevweb »

Oui c'est un problème, dans mon rad j'utilise ces 2 Api. Et ne peu donc le rendre multi plateforme. Je pensais réellement que le même genre d'Api existait pour Linux, mac. (et aurais demandé la contribution de membres pour le teste)

Mais je vais jouer l’égoïste et laisser le RAD windows only

Yes it's a problem, in my RAD code i use 2 windows api. So my RAD it's no multi OS, i find really if exist a similar code for Linux and Mac (after for the test, i ask to members of this forum for testing)

But i selfish play and let my Rad code Windows Only
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Répondre