12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391(* This file was generated automatically by wayland-scanner-ocaml *)[@@@ocaml.warning"-27-34"]openstructmoduleImports=structincludeRiver_libinput_config_v1_protoincludeRiver_input_management_v1_protoendmoduleProxy=Wayland.ProxymoduleMsg=Wayland.MsgmoduleFixed=Wayland.FixedmoduleIface_reg=Wayland.Iface_regmoduleS=Wayland.Send(** Libinput config global interface.
Global interface for configuring libinput devices. This global should
only be advertised if river_input_manager_v1 is advertised as well. *)moduleRiver_libinput_config_v1=structtype'vt=([`River_libinput_config_v1],'v,[`Server])Proxy.tmoduleError=River_libinput_config_v1_proto.River_libinput_config_v1.Error(** {2 Version 1, 2} *)(** New libinput device.
A new libinput device has been created. Not every river_input_device_v1
is necessarily a libinput device as well. *)letlibinput_device(_t:([<`V1|`V2]as'v)t)(id:([`River_libinput_device_v1],'v,[`Server])#Proxy.Handler.t)=let__id=Proxy.spawn_tidinlet_msg=Proxy.alloc_t~op:1~ints:1~strings:[]~arrays:[]inMsg.add_int_msg(Proxy.id__id);Proxy.send_t_msg;__id(** The server has finished with the object.
This event indicates that the server will send no further events on this
object. The client should destroy the object. See
river_libinput_config_v1.destroy for more information. *)letfinished(_t:([<`V1|`V2]as'v)t)=let_msg=Proxy.alloc_t~op:0~ints:0~strings:[]~arrays:[]inProxy.send_t_msg(**/**)classvirtual['v]_handlers_unsafe=object(_self:(_,'v,_)#Proxy.Handler.t)methoduser_data=S.No_datamethodmetadata=(moduleRiver_libinput_config_v1_proto.River_libinput_config_v1)methodmax_version=2lmethodprivatevirtualon_stop:[>]t->unitmethodprivatevirtualon_destroy:[>]t->unitmethodprivatevirtualon_create_accel_config:[>]t->([`River_libinput_accel_config_v1],'v,[`Server])Proxy.t->profile:Imports.River_libinput_device_v1.Accel_profile.t->unitmethoddispatch(_proxy:'vt)_msg=let_proxy=Proxy.cast_version_proxyinmatchMsg.op_msgwith|0->_self#on_stop_proxy|1->Proxy.shutdown_recv_proxy;_self#on_destroy_proxy|2->letid:([`River_libinput_accel_config_v1],_,_)Proxy.t=Msg.get_int_msg|>Proxy.Handler.accept_new_proxy(moduleImports.River_libinput_accel_config_v1)inletprofile=Msg.get_int_msg|>Imports.River_libinput_device_v1.Accel_profile.of_int32in_self#on_create_accel_config_proxyid~profile|_->assertfalseend(**/**)(** {2 Handlers}
Note: Servers will always want to use [v1].
*)(** Handler for a proxy with version >= 1. *)classvirtual['v]v1=object(_:(_,'v,_)#Proxy.Service_handler.t)(**/**)inherit[[<`V1|`V2]as'v]_handlers_unsafe(**/**)methodprivatevirtualon_stop:[>`V1|`V2]t->unit(** Stop sending events.
This request indicates that the client no longer wishes to receive
events on this object.
The Wayland protocol is asynchronous, which means the server may send
further events until the stop request is processed. The client must wait
for a river_libinput_config_v1.finished event before destroying this
object. *)methodprivatevirtualon_destroy:[>`V1|`V2]t->unit(** Destroy the river_libinput_config_v1 object.
This request should be called after the finished event has been received
to complete destruction of the object.
It is a protocol error to make this request before the finished event
has been received.
If a client wishes to destroy this object it should send a
river_libinput_config_v1.stop request and wait for a
river_libinput_config_v1.finished event. Once the finished event is
received it is safe to destroy this object and any other objects created
through this interface. *)methodprivatevirtualon_create_accel_config:[>`V1|`V2]t->([`River_libinput_accel_config_v1],'v,[`Server])Proxy.t->profile:Imports.River_libinput_device_v1.Accel_profile.t->unit(** Create a acceleration config.
Create a acceleration config which can be applied
with river_libinput_device_v1.apply_accel_config. *)methodmin_version=1lmethodbind_version:[`V1]=`V1end(** Handler for a proxy with version >= 2. *)classvirtual['v]v2=object(_:(_,'v,_)#Proxy.Service_handler.t)(**/**)inherit[[<`V2]as'v]_handlers_unsafe(**/**)methodprivatevirtualon_stop:[>`V2]t->unit(** Stop sending events.
This request indicates that the client no longer wishes to receive
events on this object.
The Wayland protocol is asynchronous, which means the server may send
further events until the stop request is processed. The client must wait
for a river_libinput_config_v1.finished event before destroying this
object. *)methodprivatevirtualon_destroy:[>`V2]t->unit(** Destroy the river_libinput_config_v1 object.
This request should be called after the finished event has been received
to complete destruction of the object.
It is a protocol error to make this request before the finished event
has been received.
If a client wishes to destroy this object it should send a
river_libinput_config_v1.stop request and wait for a
river_libinput_config_v1.finished event. Once the finished event is
received it is safe to destroy this object and any other objects created
through this interface. *)methodprivatevirtualon_create_accel_config:[>`V2]t->([`River_libinput_accel_config_v1],'v,[`Server])Proxy.t->profile:Imports.River_libinput_device_v1.Accel_profile.t->unit(** Create a acceleration config.
Create a acceleration config which can be applied
with river_libinput_device_v1.apply_accel_config. *)methodmin_version=2lmethodbind_version:[`V2]=`V2endend(** A libinput device.
In general, *_support events will be sent exactly once directly after the
river_libinput_device_v1 is created. *_default events will be sent after
*_support events if the config option is supported, and *_current events
willl be sent after the *_default events and again whenever the config
option is changed. *)moduleRiver_libinput_device_v1=structtype'vt=([`River_libinput_device_v1],'v,[`Server])Proxy.tmoduleError=River_libinput_config_v1_proto.River_libinput_device_v1.ErrormoduleSend_events_modes=River_libinput_config_v1_proto.River_libinput_device_v1.Send_events_modesmoduleTap_state=River_libinput_config_v1_proto.River_libinput_device_v1.Tap_statemoduleTap_button_map=River_libinput_config_v1_proto.River_libinput_device_v1.Tap_button_mapmoduleDrag_state=River_libinput_config_v1_proto.River_libinput_device_v1.Drag_statemoduleDrag_lock_state=River_libinput_config_v1_proto.River_libinput_device_v1.Drag_lock_statemoduleThree_finger_drag_state=River_libinput_config_v1_proto.River_libinput_device_v1.Three_finger_drag_statemoduleAccel_profile=River_libinput_config_v1_proto.River_libinput_device_v1.Accel_profilemoduleAccel_profiles=River_libinput_config_v1_proto.River_libinput_device_v1.Accel_profilesmoduleNatural_scroll_state=River_libinput_config_v1_proto.River_libinput_device_v1.Natural_scroll_statemoduleLeft_handed_state=River_libinput_config_v1_proto.River_libinput_device_v1.Left_handed_statemoduleClick_method=River_libinput_config_v1_proto.River_libinput_device_v1.Click_methodmoduleClick_methods=River_libinput_config_v1_proto.River_libinput_device_v1.Click_methodsmoduleClickfinger_button_map=River_libinput_config_v1_proto.River_libinput_device_v1.Clickfinger_button_mapmoduleMiddle_emulation_state=River_libinput_config_v1_proto.River_libinput_device_v1.Middle_emulation_statemoduleScroll_method=River_libinput_config_v1_proto.River_libinput_device_v1.Scroll_methodmoduleScroll_methods=River_libinput_config_v1_proto.River_libinput_device_v1.Scroll_methodsmoduleScroll_button_lock_state=River_libinput_config_v1_proto.River_libinput_device_v1.Scroll_button_lock_statemoduleDwt_state=River_libinput_config_v1_proto.River_libinput_device_v1.Dwt_statemoduleDwtp_state=River_libinput_config_v1_proto.River_libinput_device_v1.Dwtp_state(** {2 Version 1} *)(** Current rotation angle.
Current rotation angle. *)letrotation_current(_t:([<`V1|`V2]as'v)t)~angle=let_msg=Proxy.alloc_t~op:54~ints:1~strings:[]~arrays:[]inMsg.add_int_msgangle;Proxy.send_t_msg(** Default rotation angle.
Default rotation angle. *)letrotation_default(_t:([<`V1|`V2]as'v)t)~angle=let_msg=Proxy.alloc_t~op:53~ints:1~strings:[]~arrays:[]inMsg.add_int_msgangle;Proxy.send_t_msg(** Support for rotation.
Rotation is supported if the supported argument is non-zero. *)letrotation_support(_t:([<`V1|`V2]as'v)t)~supported=let_msg=Proxy.alloc_t~op:52~ints:1~strings:[]~arrays:[]inMsg.add_int_msgsupported;Proxy.send_t_msg(** Current disable-while-trackpointing state.
Current disable-while-trackpointing state. *)letdwtp_current(_t:([<`V1|`V2]as'v)t)~state=let_msg=Proxy.alloc_t~op:51~ints:1~strings:[]~arrays:[]inMsg.add_int_msg(Imports.River_libinput_device_v1.Dwtp_state.to_int32state);Proxy.send_t_msg(** Default disable-while-trackpointing state.
Default disable-while-trackpointing state. *)letdwtp_default(_t:([<`V1|`V2]as'v)t)~state=let_msg=Proxy.alloc_t~op:50~ints:1~strings:[]~arrays:[]inMsg.add_int_msg(Imports.River_libinput_device_v1.Dwtp_state.to_int32state);Proxy.send_t_msg(** Support for disable-while-trackpointing.
Disable-while-trackpointing is supported if the supported argument is
non-zero. *)letdwtp_support(_t:([<`V1|`V2]as'v)t)~supported=let_msg=Proxy.alloc_t~op:49~ints:1~strings:[]~arrays:[]inMsg.add_int_msgsupported;Proxy.send_t_msg(** Current disable-while-typing state.
Current disable-while-typing state. *)letdwt_current(_t:([<`V1|`V2]as'v)t)~state=let_msg=Proxy.alloc_t~op:48~ints:1~strings:[]~arrays:[]inMsg.add_int_msg(Imports.River_libinput_device_v1.Dwt_state.to_int32state);Proxy.send_t_msg(** Default disable-while-typing state.
Default disable-while-typing state. *)letdwt_default(_t:([<`V1|`V2]as'v)t)~state=let_msg=Proxy.alloc_t~op:47~ints:1~strings:[]~arrays:[]inMsg.add_int_msg(Imports.River_libinput_device_v1.Dwt_state.to_int32state);Proxy.send_t_msg(** Support for disable-while-typing.
Disable-while-typing is supported if the supported argument is
non-zero. *)letdwt_support(_t:([<`V1|`V2]as'v)t)~supported=let_msg=Proxy.alloc_t~op:46~ints:1~strings:[]~arrays:[]inMsg.add_int_msgsupported;Proxy.send_t_msg(** Current scroll button lock state.
Current scroll button lock state.
Supported if scroll_methods.on_button_down is supported. *)letscroll_button_lock_current(_t:([<`V1|`V2]as'v)t)~state=let_msg=Proxy.alloc_t~op:45~ints:1~strings:[]~arrays:[]inMsg.add_int_msg(Imports.River_libinput_device_v1.Scroll_button_lock_state.to_int32state);Proxy.send_t_msg(** Default scroll button lock state.
Default scroll button lock state.
Supported if scroll_methods.on_button_down is supported. *)letscroll_button_lock_default(_t:([<`V1|`V2]as'v)t)~state=let_msg=Proxy.alloc_t~op:44~ints:1~strings:[]~arrays:[]inMsg.add_int_msg(Imports.River_libinput_device_v1.Scroll_button_lock_state.to_int32state);Proxy.send_t_msg(** Current scroll button.
Current scroll button.
Supported if scroll_methods.on_button_down is supported. *)letscroll_button_current(_t:([<`V1|`V2]as'v)t)~button=let_msg=Proxy.alloc_t~op:43~ints:1~strings:[]~arrays:[]inMsg.add_int_msgbutton;Proxy.send_t_msg(** Default scroll button.
Default scroll button.
Supported if scroll_methods.on_button_down is supported. *)letscroll_button_default(_t:([<`V1|`V2]as'v)t)~button=let_msg=Proxy.alloc_t~op:42~ints:1~strings:[]~arrays:[]inMsg.add_int_msgbutton;Proxy.send_t_msg(** Current scroll method.
Current scroll method. *)letscroll_method_current(_t:([<`V1|`V2]as'v)t)~method_=let_msg=Proxy.alloc_t~op:41~ints:1~strings:[]~arrays:[]inMsg.add_int_msg(Imports.River_libinput_device_v1.Scroll_method.to_int32method_);Proxy.send_t_msg(** Default scroll method.
Default scroll method. *)letscroll_method_default(_t:([<`V1|`V2]as'v)t)~method_=let_msg=Proxy.alloc_t~op:40~ints:1~strings:[]~arrays:[]inMsg.add_int_msg(Imports.River_libinput_device_v1.Scroll_method.to_int32method_);Proxy.send_t_msg(** Supported scroll methods.
The scroll methods supported by the device. *)letscroll_method_support(_t:([<`V1|`V2]as'v)t)~methods=let_msg=Proxy.alloc_t~op:39~ints:1~strings:[]~arrays:[]inMsg.add_int_msg(Imports.River_libinput_device_v1.Scroll_methods.to_int32methods);Proxy.send_t_msg(** Current middle mouse button emulation state.
Current middle mouse button emulation. *)letmiddle_emulation_current(_t:([<`V1|`V2]as'v)t)~state=let_msg=Proxy.alloc_t~op:38~ints:1~strings:[]~arrays:[]inMsg.add_int_msg(Imports.River_libinput_device_v1.Middle_emulation_state.to_int32state);Proxy.send_t_msg(** Default middle mouse button emulation.
Default middle mouse button emulation. *)letmiddle_emulation_default(_t:([<`V1|`V2]as'v)t)~state=let_msg=Proxy.alloc_t~op:37~ints:1~strings:[]~arrays:[]inMsg.add_int_msg(Imports.River_libinput_device_v1.Middle_emulation_state.to_int32state);Proxy.send_t_msg(** Support for middle mouse button emulation.
Middle mouse button emulation is supported if the supported argument is
non-zero. *)letmiddle_emulation_support(_t:([<`V1|`V2]as'v)t)~supported=let_msg=Proxy.alloc_t~op:36~ints:1~strings:[]~arrays:[]inMsg.add_int_msgsupported;Proxy.send_t_msg(** Current clickfinger button map.
Current clickfinger button map.
Supported if click_methods.clickfinger is supported. *)letclickfinger_button_map_current(_t:([<`V1|`V2]as'v)t)~button_map=let_msg=Proxy.alloc_t~op:35~ints:1~strings:[]~arrays:[]inMsg.add_int_msg(Imports.River_libinput_device_v1.Clickfinger_button_map.to_int32button_map);Proxy.send_t_msg(** Default clickfinger button map.
Default clickfinger button map.
Supported if click_methods.clickfinger is supported. *)letclickfinger_button_map_default(_t:([<`V1|`V2]as'v)t)~button_map=let_msg=Proxy.alloc_t~op:34~ints:1~strings:[]~arrays:[]inMsg.add_int_msg(Imports.River_libinput_device_v1.Clickfinger_button_map.to_int32button_map);Proxy.send_t_msg(** Current click method.
Current click method. *)letclick_method_current(_t:([<`V1|`V2]as'v)t)~method_=let_msg=Proxy.alloc_t~op:33~ints:1~strings:[]~arrays:[]inMsg.add_int_msg(Imports.River_libinput_device_v1.Click_method.to_int32method_);Proxy.send_t_msg(** Default click method.
Default click method. *)letclick_method_default(_t:([<`V1|`V2]as'v)t)~method_=let_msg=Proxy.alloc_t~op:32~ints:1~strings:[]~arrays:[]inMsg.add_int_msg(Imports.River_libinput_device_v1.Click_method.to_int32method_);Proxy.send_t_msg(** Supported click methods.
The click methods supported by the device. *)letclick_method_support(_t:([<`V1|`V2]as'v)t)~methods=let_msg=Proxy.alloc_t~op:31~ints:1~strings:[]~arrays:[]inMsg.add_int_msg(Imports.River_libinput_device_v1.Click_methods.to_int32methods);Proxy.send_t_msg(** Current left-handed mode state.
Current left-handed mode. *)letleft_handed_current(_t:([<`V1|`V2]as'v)t)~state=let_msg=Proxy.alloc_t~op:30~ints:1~strings:[]~arrays:[]inMsg.add_int_msg(Imports.River_libinput_device_v1.Left_handed_state.to_int32state);Proxy.send_t_msg(** Default left-handed mode.
Default left-handed mode. *)letleft_handed_default(_t:([<`V1|`V2]as'v)t)~state=let_msg=Proxy.alloc_t~op:29~ints:1~strings:[]~arrays:[]inMsg.add_int_msg(Imports.River_libinput_device_v1.Left_handed_state.to_int32state);Proxy.send_t_msg(** Support for left-handed mode.
Left-handed mode is supported if the supported argument is non-zero. *)letleft_handed_support(_t:([<`V1|`V2]as'v)t)~supported=let_msg=Proxy.alloc_t~op:28~ints:1~strings:[]~arrays:[]inMsg.add_int_msgsupported;Proxy.send_t_msg(** Current natural scroll state.
Current natural scroll. *)letnatural_scroll_current(_t:([<`V1|`V2]as'v)t)~state=let_msg=Proxy.alloc_t~op:27~ints:1~strings:[]~arrays:[]inMsg.add_int_msg(Imports.River_libinput_device_v1.Natural_scroll_state.to_int32state);Proxy.send_t_msg(** Default natural scroll.
Default natural scroll. *)letnatural_scroll_default(_t:([<`V1|`V2]as'v)t)~state=let_msg=Proxy.alloc_t~op:26~ints:1~strings:[]~arrays:[]inMsg.add_int_msg(Imports.River_libinput_device_v1.Natural_scroll_state.to_int32state);Proxy.send_t_msg(** Support for natural scroll.
Natural scroll is supported if the supported argument is non-zero. *)letnatural_scroll_support(_t:([<`V1|`V2]as'v)t)~supported=let_msg=Proxy.alloc_t~op:25~ints:1~strings:[]~arrays:[]inMsg.add_int_msgsupported;Proxy.send_t_msg(** Current acceleration speed.
Current acceleration speed. *)letaccel_speed_current(_t:([<`V1|`V2]as'v)t)~speed=let_msg=Proxy.alloc_t~op:24~ints:1~strings:[]~arrays:[speed]inMsg.add_array_msgspeed;Proxy.send_t_msg(** Default acceleration speed.
Default acceleration speed. *)letaccel_speed_default(_t:([<`V1|`V2]as'v)t)~speed=let_msg=Proxy.alloc_t~op:23~ints:1~strings:[]~arrays:[speed]inMsg.add_array_msgspeed;Proxy.send_t_msg(** Current acceleration profile.
Current acceleration profile. *)letaccel_profile_current(_t:([<`V1|`V2]as'v)t)~profile=let_msg=Proxy.alloc_t~op:22~ints:1~strings:[]~arrays:[]inMsg.add_int_msg(Imports.River_libinput_device_v1.Accel_profile.to_int32profile);Proxy.send_t_msg(** Default acceleration profile.
Default acceleration profile. *)letaccel_profile_default(_t:([<`V1|`V2]as'v)t)~profile=let_msg=Proxy.alloc_t~op:21~ints:1~strings:[]~arrays:[]inMsg.add_int_msg(Imports.River_libinput_device_v1.Accel_profile.to_int32profile);Proxy.send_t_msg(** Supported acceleration profiles.
Supported acceleration profiles. *)letaccel_profiles_support(_t:([<`V1|`V2]as'v)t)~profiles=let_msg=Proxy.alloc_t~op:20~ints:1~strings:[]~arrays:[]inMsg.add_int_msg(Imports.River_libinput_device_v1.Accel_profiles.to_int32profiles);Proxy.send_t_msg(** Current calibration matrix.
Current calibration matrix. *)letcalibration_matrix_current(_t:([<`V1|`V2]as'v)t)~matrix=let_msg=Proxy.alloc_t~op:19~ints:1~strings:[]~arrays:[matrix]inMsg.add_array_msgmatrix;Proxy.send_t_msg(** Default calibration matrix.
Default calibration matrix. *)letcalibration_matrix_default(_t:([<`V1|`V2]as'v)t)~matrix=let_msg=Proxy.alloc_t~op:18~ints:1~strings:[]~arrays:[matrix]inMsg.add_array_msgmatrix;Proxy.send_t_msg(** Support for a calibration matrix.
A calibration matrix is supported if the supported argument is non-zero. *)letcalibration_matrix_support(_t:([<`V1|`V2]as'v)t)~supported=let_msg=Proxy.alloc_t~op:17~ints:1~strings:[]~arrays:[]inMsg.add_int_msgsupported;Proxy.send_t_msg(** Current three finger drag state.
Current three finger drag state. *)letthree_finger_drag_current(_t:([<`V1|`V2]as'v)t)~state=let_msg=Proxy.alloc_t~op:16~ints:1~strings:[]~arrays:[]inMsg.add_int_msg(Imports.River_libinput_device_v1.Three_finger_drag_state.to_int32state);Proxy.send_t_msg(** Default three finger drag state.
Default three finger drag state. *)letthree_finger_drag_default(_t:([<`V1|`V2]as'v)t)~state=let_msg=Proxy.alloc_t~op:15~ints:1~strings:[]~arrays:[]inMsg.add_int_msg(Imports.River_libinput_device_v1.Three_finger_drag_state.to_int32state);Proxy.send_t_msg(** Three finger drag support.
The number of fingers supported for three/four finger drag.
If finger_count is less than 3, three finger drag is unsupported. *)letthree_finger_drag_support(_t:([<`V1|`V2]as'v)t)~finger_count=let_msg=Proxy.alloc_t~op:14~ints:1~strings:[]~arrays:[]inMsg.add_int_msgfinger_count;Proxy.send_t_msg(** Current drag lock state.
Current drag lock state. *)letdrag_lock_current(_t:([<`V1|`V2]as'v)t)~state=let_msg=Proxy.alloc_t~op:13~ints:1~strings:[]~arrays:[]inMsg.add_int_msg(Imports.River_libinput_device_v1.Drag_lock_state.to_int32state);Proxy.send_t_msg(** Default drag lock state.
Default drag lock state. *)letdrag_lock_default(_t:([<`V1|`V2]as'v)t)~state=let_msg=Proxy.alloc_t~op:12~ints:1~strings:[]~arrays:[]inMsg.add_int_msg(Imports.River_libinput_device_v1.Drag_lock_state.to_int32state);Proxy.send_t_msg(** Current tap-and-drag state.
Current tap-and-drag state. *)letdrag_current(_t:([<`V1|`V2]as'v)t)~state=let_msg=Proxy.alloc_t~op:11~ints:1~strings:[]~arrays:[]inMsg.add_int_msg(Imports.River_libinput_device_v1.Drag_state.to_int32state);Proxy.send_t_msg(** Default tap-and-drag state.
Default tap-and-drag state. *)letdrag_default(_t:([<`V1|`V2]as'v)t)~state=let_msg=Proxy.alloc_t~op:10~ints:1~strings:[]~arrays:[]inMsg.add_int_msg(Imports.River_libinput_device_v1.Drag_state.to_int32state);Proxy.send_t_msg(** Current tap-to-click button map.
Current tap-to-click button map. *)lettap_button_map_current(_t:([<`V1|`V2]as'v)t)~button_map=let_msg=Proxy.alloc_t~op:9~ints:1~strings:[]~arrays:[]inMsg.add_int_msg(Imports.River_libinput_device_v1.Tap_button_map.to_int32button_map);Proxy.send_t_msg(** Default tap-to-click button map.
Default tap-to-click button map. *)lettap_button_map_default(_t:([<`V1|`V2]as'v)t)~button_map=let_msg=Proxy.alloc_t~op:8~ints:1~strings:[]~arrays:[]inMsg.add_int_msg(Imports.River_libinput_device_v1.Tap_button_map.to_int32button_map);Proxy.send_t_msg(** Current tap-to-click state.
Current tap-to-click state. *)lettap_current(_t:([<`V1|`V2]as'v)t)~state=let_msg=Proxy.alloc_t~op:7~ints:1~strings:[]~arrays:[]inMsg.add_int_msg(Imports.River_libinput_device_v1.Tap_state.to_int32state);Proxy.send_t_msg(** Default tap-to-click state.
Default tap-to-click state. *)lettap_default(_t:([<`V1|`V2]as'v)t)~state=let_msg=Proxy.alloc_t~op:6~ints:1~strings:[]~arrays:[]inMsg.add_int_msg(Imports.River_libinput_device_v1.Tap_state.to_int32state);Proxy.send_t_msg(** Tap-to-click/drag support.
The number of fingers supported for tap-to-click/drag.
If finger_count is 0, tap-to-click and drag are unsupported. *)lettap_support(_t:([<`V1|`V2]as'v)t)~finger_count=let_msg=Proxy.alloc_t~op:5~ints:1~strings:[]~arrays:[]inMsg.add_int_msgfinger_count;Proxy.send_t_msg(** Current send events mode.
Current send events mode. *)letsend_events_current(_t:([<`V1|`V2]as'v)t)~mode=let_msg=Proxy.alloc_t~op:4~ints:1~strings:[]~arrays:[]inMsg.add_int_msg(Imports.River_libinput_device_v1.Send_events_modes.to_int32mode);Proxy.send_t_msg(** Default send events mode.
Default send events mode. *)letsend_events_default(_t:([<`V1|`V2]as'v)t)~mode=let_msg=Proxy.alloc_t~op:3~ints:1~strings:[]~arrays:[]inMsg.add_int_msg(Imports.River_libinput_device_v1.Send_events_modes.to_int32mode);Proxy.send_t_msg(** Supported send events modes.
Supported send events modes. *)letsend_events_support(_t:([<`V1|`V2]as'v)t)~modes=let_msg=Proxy.alloc_t~op:2~ints:1~strings:[]~arrays:[]inMsg.add_int_msg(Imports.River_libinput_device_v1.Send_events_modes.to_int32modes);Proxy.send_t_msg(** Corresponding river input device.
The river_input_device_v1 corresponding to this libinput device.
This event will always be the first event sent on the
river_libinput_device_v1 object, and it will be sent exactly once. *)letinput_device(_t:([<`V1|`V2]as'v)t)~(device:([`River_input_device_v1],_,[`Server])Proxy.t)=let_msg=Proxy.alloc_t~op:1~ints:1~strings:[]~arrays:[]inMsg.add_int_msg(Proxy.iddevice);Proxy.send_t_msg(** The libinput device is removed.
This event indicates that the libinput device has been removed.
The server will send no further events on this object and ignore any
request (other than river_libinput_device_v1.destroy) made after this
event is sent. The client should destroy this object with the
river_libinput_device_v1.destroy request to free up resources. *)letremoved(_t:([<`V1|`V2]as'v)t)=let_msg=Proxy.alloc_t~op:0~ints:0~strings:[]~arrays:[]inProxy.send_t_msg(** {2 Version 2} *)(** All information has been sent.
This event is sent after all information about the libinput device has
been sent.
This allows changes to one or more river_libinput_device_v1 properties
to be seen as atomic, even if they happen via multiple events. *)letdone_(_t:([<`V2]as'v)t)=let_msg=Proxy.alloc_t~op:55~ints:0~strings:[]~arrays:[]inProxy.send_t_msg(**/**)classvirtual['v]_handlers_unsafe=object(_self:(_,'v,_)#Proxy.Handler.t)methoduser_data=S.No_datamethodmetadata=(moduleRiver_libinput_config_v1_proto.River_libinput_device_v1)methodmax_version=2lmethodprivatevirtualon_destroy:[>]t->unitmethodprivatevirtualon_set_send_events:[>]t->([`River_libinput_result_v1],'v,[`Server])Proxy.t->mode:Imports.River_libinput_device_v1.Send_events_modes.t->unitmethodprivatevirtualon_set_tap:[>]t->([`River_libinput_result_v1],'v,[`Server])Proxy.t->state:Imports.River_libinput_device_v1.Tap_state.t->unitmethodprivatevirtualon_set_tap_button_map:[>]t->([`River_libinput_result_v1],'v,[`Server])Proxy.t->button_map:Imports.River_libinput_device_v1.Tap_button_map.t->unitmethodprivatevirtualon_set_drag:[>]t->([`River_libinput_result_v1],'v,[`Server])Proxy.t->state:Imports.River_libinput_device_v1.Drag_state.t->unitmethodprivatevirtualon_set_drag_lock:[>]t->([`River_libinput_result_v1],'v,[`Server])Proxy.t->state:Imports.River_libinput_device_v1.Drag_lock_state.t->unitmethodprivatevirtualon_set_three_finger_drag:[>]t->([`River_libinput_result_v1],'v,[`Server])Proxy.t->state:Imports.River_libinput_device_v1.Three_finger_drag_state.t->unitmethodprivatevirtualon_set_calibration_matrix:[>]t->([`River_libinput_result_v1],'v,[`Server])Proxy.t->matrix:string->unitmethodprivatevirtualon_set_accel_profile:[>]t->([`River_libinput_result_v1],'v,[`Server])Proxy.t->profile:Imports.River_libinput_device_v1.Accel_profile.t->unitmethodprivatevirtualon_set_accel_speed:[>]t->([`River_libinput_result_v1],'v,[`Server])Proxy.t->speed:string->unitmethodprivatevirtualon_apply_accel_config:[>]t->([`River_libinput_result_v1],'v,[`Server])Proxy.t->config:([`River_libinput_accel_config_v1],[>Imports.River_libinput_accel_config_v1.versions],[`Server])Proxy.t->unitmethodprivatevirtualon_set_natural_scroll:[>]t->([`River_libinput_result_v1],'v,[`Server])Proxy.t->state:Imports.River_libinput_device_v1.Natural_scroll_state.t->unitmethodprivatevirtualon_set_left_handed:[>]t->([`River_libinput_result_v1],'v,[`Server])Proxy.t->state:Imports.River_libinput_device_v1.Left_handed_state.t->unitmethodprivatevirtualon_set_click_method:[>]t->([`River_libinput_result_v1],'v,[`Server])Proxy.t->method_:Imports.River_libinput_device_v1.Click_method.t->unitmethodprivatevirtualon_set_clickfinger_button_map:[>]t->([`River_libinput_result_v1],'v,[`Server])Proxy.t->button_map:Imports.River_libinput_device_v1.Clickfinger_button_map.t->unitmethodprivatevirtualon_set_middle_emulation:[>]t->([`River_libinput_result_v1],'v,[`Server])Proxy.t->state:Imports.River_libinput_device_v1.Middle_emulation_state.t->unitmethodprivatevirtualon_set_scroll_method:[>]t->([`River_libinput_result_v1],'v,[`Server])Proxy.t->method_:Imports.River_libinput_device_v1.Scroll_method.t->unitmethodprivatevirtualon_set_scroll_button:[>]t->([`River_libinput_result_v1],'v,[`Server])Proxy.t->button:int32->unitmethodprivatevirtualon_set_scroll_button_lock:[>]t->([`River_libinput_result_v1],'v,[`Server])Proxy.t->state:Imports.River_libinput_device_v1.Scroll_button_lock_state.t->unitmethodprivatevirtualon_set_dwt:[>]t->([`River_libinput_result_v1],'v,[`Server])Proxy.t->state:Imports.River_libinput_device_v1.Dwt_state.t->unitmethodprivatevirtualon_set_dwtp:[>]t->([`River_libinput_result_v1],'v,[`Server])Proxy.t->state:Imports.River_libinput_device_v1.Dwtp_state.t->unitmethodprivatevirtualon_set_rotation:[>]t->([`River_libinput_result_v1],'v,[`Server])Proxy.t->angle:int32->unitmethoddispatch(_proxy:'vt)_msg=let_proxy=Proxy.cast_version_proxyinmatchMsg.op_msgwith|0->Proxy.shutdown_recv_proxy;_self#on_destroy_proxy|1->letresult:([`River_libinput_result_v1],_,_)Proxy.t=Msg.get_int_msg|>Proxy.Handler.accept_new_proxy(moduleImports.River_libinput_result_v1)inletmode=Msg.get_int_msg|>Imports.River_libinput_device_v1.Send_events_modes.of_int32in_self#on_set_send_events_proxyresult~mode|2->letresult:([`River_libinput_result_v1],_,_)Proxy.t=Msg.get_int_msg|>Proxy.Handler.accept_new_proxy(moduleImports.River_libinput_result_v1)inletstate=Msg.get_int_msg|>Imports.River_libinput_device_v1.Tap_state.of_int32in_self#on_set_tap_proxyresult~state|3->letresult:([`River_libinput_result_v1],_,_)Proxy.t=Msg.get_int_msg|>Proxy.Handler.accept_new_proxy(moduleImports.River_libinput_result_v1)inletbutton_map=Msg.get_int_msg|>Imports.River_libinput_device_v1.Tap_button_map.of_int32in_self#on_set_tap_button_map_proxyresult~button_map|4->letresult:([`River_libinput_result_v1],_,_)Proxy.t=Msg.get_int_msg|>Proxy.Handler.accept_new_proxy(moduleImports.River_libinput_result_v1)inletstate=Msg.get_int_msg|>Imports.River_libinput_device_v1.Drag_state.of_int32in_self#on_set_drag_proxyresult~state|5->letresult:([`River_libinput_result_v1],_,_)Proxy.t=Msg.get_int_msg|>Proxy.Handler.accept_new_proxy(moduleImports.River_libinput_result_v1)inletstate=Msg.get_int_msg|>Imports.River_libinput_device_v1.Drag_lock_state.of_int32in_self#on_set_drag_lock_proxyresult~state|6->letresult:([`River_libinput_result_v1],_,_)Proxy.t=Msg.get_int_msg|>Proxy.Handler.accept_new_proxy(moduleImports.River_libinput_result_v1)inletstate=Msg.get_int_msg|>Imports.River_libinput_device_v1.Three_finger_drag_state.of_int32in_self#on_set_three_finger_drag_proxyresult~state|7->letresult:([`River_libinput_result_v1],_,_)Proxy.t=Msg.get_int_msg|>Proxy.Handler.accept_new_proxy(moduleImports.River_libinput_result_v1)inletmatrix=Msg.get_array_msgin_self#on_set_calibration_matrix_proxyresult~matrix|8->letresult:([`River_libinput_result_v1],_,_)Proxy.t=Msg.get_int_msg|>Proxy.Handler.accept_new_proxy(moduleImports.River_libinput_result_v1)inletprofile=Msg.get_int_msg|>Imports.River_libinput_device_v1.Accel_profile.of_int32in_self#on_set_accel_profile_proxyresult~profile|9->letresult:([`River_libinput_result_v1],_,_)Proxy.t=Msg.get_int_msg|>Proxy.Handler.accept_new_proxy(moduleImports.River_libinput_result_v1)inletspeed=Msg.get_array_msgin_self#on_set_accel_speed_proxyresult~speed|10->letresult:([`River_libinput_result_v1],_,_)Proxy.t=Msg.get_int_msg|>Proxy.Handler.accept_new_proxy(moduleImports.River_libinput_result_v1)inletconfig:([`River_libinput_accel_config_v1],_,_)Proxy.t=letProxy.Proxyp=Msg.get_int_msg|>Proxy.lookup_other_proxyinmatchProxy.typwith|Imports.River_libinput_accel_config_v1.T->p|_->Proxy.wrong_type~parent:_proxy~expected:"river_libinput_accel_config_v1"pin_self#on_apply_accel_config_proxyresult~config|11->letresult:([`River_libinput_result_v1],_,_)Proxy.t=Msg.get_int_msg|>Proxy.Handler.accept_new_proxy(moduleImports.River_libinput_result_v1)inletstate=Msg.get_int_msg|>Imports.River_libinput_device_v1.Natural_scroll_state.of_int32in_self#on_set_natural_scroll_proxyresult~state|12->letresult:([`River_libinput_result_v1],_,_)Proxy.t=Msg.get_int_msg|>Proxy.Handler.accept_new_proxy(moduleImports.River_libinput_result_v1)inletstate=Msg.get_int_msg|>Imports.River_libinput_device_v1.Left_handed_state.of_int32in_self#on_set_left_handed_proxyresult~state|13->letresult:([`River_libinput_result_v1],_,_)Proxy.t=Msg.get_int_msg|>Proxy.Handler.accept_new_proxy(moduleImports.River_libinput_result_v1)inletmethod_=Msg.get_int_msg|>Imports.River_libinput_device_v1.Click_method.of_int32in_self#on_set_click_method_proxyresult~method_|14->letresult:([`River_libinput_result_v1],_,_)Proxy.t=Msg.get_int_msg|>Proxy.Handler.accept_new_proxy(moduleImports.River_libinput_result_v1)inletbutton_map=Msg.get_int_msg|>Imports.River_libinput_device_v1.Clickfinger_button_map.of_int32in_self#on_set_clickfinger_button_map_proxyresult~button_map|15->letresult:([`River_libinput_result_v1],_,_)Proxy.t=Msg.get_int_msg|>Proxy.Handler.accept_new_proxy(moduleImports.River_libinput_result_v1)inletstate=Msg.get_int_msg|>Imports.River_libinput_device_v1.Middle_emulation_state.of_int32in_self#on_set_middle_emulation_proxyresult~state|16->letresult:([`River_libinput_result_v1],_,_)Proxy.t=Msg.get_int_msg|>Proxy.Handler.accept_new_proxy(moduleImports.River_libinput_result_v1)inletmethod_=Msg.get_int_msg|>Imports.River_libinput_device_v1.Scroll_method.of_int32in_self#on_set_scroll_method_proxyresult~method_|17->letresult:([`River_libinput_result_v1],_,_)Proxy.t=Msg.get_int_msg|>Proxy.Handler.accept_new_proxy(moduleImports.River_libinput_result_v1)inletbutton=Msg.get_int_msgin_self#on_set_scroll_button_proxyresult~button|18->letresult:([`River_libinput_result_v1],_,_)Proxy.t=Msg.get_int_msg|>Proxy.Handler.accept_new_proxy(moduleImports.River_libinput_result_v1)inletstate=Msg.get_int_msg|>Imports.River_libinput_device_v1.Scroll_button_lock_state.of_int32in_self#on_set_scroll_button_lock_proxyresult~state|19->letresult:([`River_libinput_result_v1],_,_)Proxy.t=Msg.get_int_msg|>Proxy.Handler.accept_new_proxy(moduleImports.River_libinput_result_v1)inletstate=Msg.get_int_msg|>Imports.River_libinput_device_v1.Dwt_state.of_int32in_self#on_set_dwt_proxyresult~state|20->letresult:([`River_libinput_result_v1],_,_)Proxy.t=Msg.get_int_msg|>Proxy.Handler.accept_new_proxy(moduleImports.River_libinput_result_v1)inletstate=Msg.get_int_msg|>Imports.River_libinput_device_v1.Dwtp_state.of_int32in_self#on_set_dwtp_proxyresult~state|21->letresult:([`River_libinput_result_v1],_,_)Proxy.t=Msg.get_int_msg|>Proxy.Handler.accept_new_proxy(moduleImports.River_libinput_result_v1)inletangle=Msg.get_int_msgin_self#on_set_rotation_proxyresult~angle|_->assertfalseend(**/**)(** {2 Handlers}
Note: Servers will always want to use [v1].
*)(** Handler for a proxy with version >= 1. *)classvirtual['v]v1=object(_:(_,'v,_)#Proxy.Service_handler.t)(**/**)inherit[[<`V1|`V2]as'v]_handlers_unsafe(**/**)methodprivatevirtualon_destroy:[>`V1|`V2]t->unit(** Destroy the libinput device object.
This request indicates that the client will no longer use the input
device object and that it may be safely destroyed. *)methodprivatevirtualon_set_send_events:[>`V1|`V2]t->([`River_libinput_result_v1],'v,[`Server])Proxy.t->mode:Imports.River_libinput_device_v1.Send_events_modes.t->unit(** Set send events mode.
Set the send events mode for the device. *)methodprivatevirtualon_set_tap:[>`V1|`V2]t->([`River_libinput_result_v1],'v,[`Server])Proxy.t->state:Imports.River_libinput_device_v1.Tap_state.t->unit(** Enable/disable tap-to-click.
Configure tap-to-click on this device, with a default mapping of
1, 2, 3 finger tap mapping to left, right, middle click, respectively. *)methodprivatevirtualon_set_tap_button_map:[>`V1|`V2]t->([`River_libinput_result_v1],'v,[`Server])Proxy.t->button_map:Imports.River_libinput_device_v1.Tap_button_map.t->unit(** Set tap-to-click button map.
Set the finger number to button number mapping for tap-to-click. The
default mapping on most devices is to have a 1, 2 and 3 finger tap to
map to the left, right and middle button, respectively. *)methodprivatevirtualon_set_drag:[>`V1|`V2]t->([`River_libinput_result_v1],'v,[`Server])Proxy.t->state:Imports.River_libinput_device_v1.Drag_state.t->unit(** Set tap-and-drag state.
Configure tap-and-drag functionality on the device. *)methodprivatevirtualon_set_drag_lock:[>`V1|`V2]t->([`River_libinput_result_v1],'v,[`Server])Proxy.t->state:Imports.River_libinput_device_v1.Drag_lock_state.t->unit(** Set drag lock state.
Configure drag-lock during tapping on this device. When enabled, a
finger may be lifted and put back on the touchpad and the drag process
continues. A timeout for lifting the finger is optional. When disabled,
lifting the finger during a tap-and-drag will immediately stop the drag.
See the libinput documentation for more details. *)methodprivatevirtualon_set_three_finger_drag:[>`V1|`V2]t->([`River_libinput_result_v1],'v,[`Server])Proxy.t->state:Imports.River_libinput_device_v1.Three_finger_drag_state.t->unit(** Set three finger drag state.
Configure three finger drag functionality for the device. *)methodprivatevirtualon_set_calibration_matrix:[>`V1|`V2]t->([`River_libinput_result_v1],'v,[`Server])Proxy.t->matrix:string->unit(** Set calibration matrix.
Set calibration matrix. *)methodprivatevirtualon_set_accel_profile:[>`V1|`V2]t->([`River_libinput_result_v1],'v,[`Server])Proxy.t->profile:Imports.River_libinput_device_v1.Accel_profile.t->unit(** Set acceleration profile.
Set the acceleration profile. *)methodprivatevirtualon_set_accel_speed:[>`V1|`V2]t->([`River_libinput_result_v1],'v,[`Server])Proxy.t->speed:string->unit(** Set acceleration speed.
Set the acceleration speed within a range of [-1, 1], where 0 is
the default acceleration for this device, -1 is the slowest acceleration
and 1 is the maximum acceleration available on this device. *)methodprivatevirtualon_apply_accel_config:[>`V1|`V2]t->([`River_libinput_result_v1],'v,[`Server])Proxy.t->config:([`River_libinput_accel_config_v1],[>Imports.River_libinput_accel_config_v1.versions],[`Server])Proxy.t->unit(** Apply acceleration config.
Apply a pointer accleration config. *)methodprivatevirtualon_set_natural_scroll:[>`V1|`V2]t->([`River_libinput_result_v1],'v,[`Server])Proxy.t->state:Imports.River_libinput_device_v1.Natural_scroll_state.t->unit(** Set natural scroll state.
Set natural scroll state. *)methodprivatevirtualon_set_left_handed:[>`V1|`V2]t->([`River_libinput_result_v1],'v,[`Server])Proxy.t->state:Imports.River_libinput_device_v1.Left_handed_state.t->unit(** Set left-handed mode state.
Set left-handed mode state. *)methodprivatevirtualon_set_click_method:[>`V1|`V2]t->([`River_libinput_result_v1],'v,[`Server])Proxy.t->method_:Imports.River_libinput_device_v1.Click_method.t->unit(** Set click method.
Set click method. *)methodprivatevirtualon_set_clickfinger_button_map:[>`V1|`V2]t->([`River_libinput_result_v1],'v,[`Server])Proxy.t->button_map:Imports.River_libinput_device_v1.Clickfinger_button_map.t->unit(** Set clickfinger button map.
Set clickfinger button map.
Supported if click_methods.clickfinger is supported. *)methodprivatevirtualon_set_middle_emulation:[>`V1|`V2]t->([`River_libinput_result_v1],'v,[`Server])Proxy.t->state:Imports.River_libinput_device_v1.Middle_emulation_state.t->unit(** Set middle mouse button emulation state.
Set middle mouse button emulation state. *)methodprivatevirtualon_set_scroll_method:[>`V1|`V2]t->([`River_libinput_result_v1],'v,[`Server])Proxy.t->method_:Imports.River_libinput_device_v1.Scroll_method.t->unit(** Set scroll method.
Set scroll method. *)methodprivatevirtualon_set_scroll_button:[>`V1|`V2]t->([`River_libinput_result_v1],'v,[`Server])Proxy.t->button:int32->unit(** Set scroll button.
Set scroll button.
Supported if scroll_methods.on_button_down is supported. *)methodprivatevirtualon_set_scroll_button_lock:[>`V1|`V2]t->([`River_libinput_result_v1],'v,[`Server])Proxy.t->state:Imports.River_libinput_device_v1.Scroll_button_lock_state.t->unit(** Set scroll button lock state.
Set scroll button lock state.
Supported if scroll_methods.on_button_down is supported. *)methodprivatevirtualon_set_dwt:[>`V1|`V2]t->([`River_libinput_result_v1],'v,[`Server])Proxy.t->state:Imports.River_libinput_device_v1.Dwt_state.t->unit(** Set disable-while-typing state.
Set disable-while-typing state. *)methodprivatevirtualon_set_dwtp:[>`V1|`V2]t->([`River_libinput_result_v1],'v,[`Server])Proxy.t->state:Imports.River_libinput_device_v1.Dwtp_state.t->unit(** Set disable-while-trackpointing state.
Set disable-while-trackpointing state. *)methodprivatevirtualon_set_rotation:[>`V1|`V2]t->([`River_libinput_result_v1],'v,[`Server])Proxy.t->angle:int32->unit(** Set rotation angle.
Set rotation angle in degrees clockwise off the logical neutral
position. Angle must be in the range [0-360). *)methodmin_version=1lend(** Handler for a proxy with version >= 2. *)classvirtual['v]v2=object(_:(_,'v,_)#Proxy.Service_handler.t)(**/**)inherit[[<`V2]as'v]_handlers_unsafe(**/**)methodprivatevirtualon_destroy:[>`V2]t->unit(** Destroy the libinput device object.
This request indicates that the client will no longer use the input
device object and that it may be safely destroyed. *)methodprivatevirtualon_set_send_events:[>`V2]t->([`River_libinput_result_v1],'v,[`Server])Proxy.t->mode:Imports.River_libinput_device_v1.Send_events_modes.t->unit(** Set send events mode.
Set the send events mode for the device. *)methodprivatevirtualon_set_tap:[>`V2]t->([`River_libinput_result_v1],'v,[`Server])Proxy.t->state:Imports.River_libinput_device_v1.Tap_state.t->unit(** Enable/disable tap-to-click.
Configure tap-to-click on this device, with a default mapping of
1, 2, 3 finger tap mapping to left, right, middle click, respectively. *)methodprivatevirtualon_set_tap_button_map:[>`V2]t->([`River_libinput_result_v1],'v,[`Server])Proxy.t->button_map:Imports.River_libinput_device_v1.Tap_button_map.t->unit(** Set tap-to-click button map.
Set the finger number to button number mapping for tap-to-click. The
default mapping on most devices is to have a 1, 2 and 3 finger tap to
map to the left, right and middle button, respectively. *)methodprivatevirtualon_set_drag:[>`V2]t->([`River_libinput_result_v1],'v,[`Server])Proxy.t->state:Imports.River_libinput_device_v1.Drag_state.t->unit(** Set tap-and-drag state.
Configure tap-and-drag functionality on the device. *)methodprivatevirtualon_set_drag_lock:[>`V2]t->([`River_libinput_result_v1],'v,[`Server])Proxy.t->state:Imports.River_libinput_device_v1.Drag_lock_state.t->unit(** Set drag lock state.
Configure drag-lock during tapping on this device. When enabled, a
finger may be lifted and put back on the touchpad and the drag process
continues. A timeout for lifting the finger is optional. When disabled,
lifting the finger during a tap-and-drag will immediately stop the drag.
See the libinput documentation for more details. *)methodprivatevirtualon_set_three_finger_drag:[>`V2]t->([`River_libinput_result_v1],'v,[`Server])Proxy.t->state:Imports.River_libinput_device_v1.Three_finger_drag_state.t->unit(** Set three finger drag state.
Configure three finger drag functionality for the device. *)methodprivatevirtualon_set_calibration_matrix:[>`V2]t->([`River_libinput_result_v1],'v,[`Server])Proxy.t->matrix:string->unit(** Set calibration matrix.
Set calibration matrix. *)methodprivatevirtualon_set_accel_profile:[>`V2]t->([`River_libinput_result_v1],'v,[`Server])Proxy.t->profile:Imports.River_libinput_device_v1.Accel_profile.t->unit(** Set acceleration profile.
Set the acceleration profile. *)methodprivatevirtualon_set_accel_speed:[>`V2]t->([`River_libinput_result_v1],'v,[`Server])Proxy.t->speed:string->unit(** Set acceleration speed.
Set the acceleration speed within a range of [-1, 1], where 0 is
the default acceleration for this device, -1 is the slowest acceleration
and 1 is the maximum acceleration available on this device. *)methodprivatevirtualon_apply_accel_config:[>`V2]t->([`River_libinput_result_v1],'v,[`Server])Proxy.t->config:([`River_libinput_accel_config_v1],[>Imports.River_libinput_accel_config_v1.versions],[`Server])Proxy.t->unit(** Apply acceleration config.
Apply a pointer accleration config. *)methodprivatevirtualon_set_natural_scroll:[>`V2]t->([`River_libinput_result_v1],'v,[`Server])Proxy.t->state:Imports.River_libinput_device_v1.Natural_scroll_state.t->unit(** Set natural scroll state.
Set natural scroll state. *)methodprivatevirtualon_set_left_handed:[>`V2]t->([`River_libinput_result_v1],'v,[`Server])Proxy.t->state:Imports.River_libinput_device_v1.Left_handed_state.t->unit(** Set left-handed mode state.
Set left-handed mode state. *)methodprivatevirtualon_set_click_method:[>`V2]t->([`River_libinput_result_v1],'v,[`Server])Proxy.t->method_:Imports.River_libinput_device_v1.Click_method.t->unit(** Set click method.
Set click method. *)methodprivatevirtualon_set_clickfinger_button_map:[>`V2]t->([`River_libinput_result_v1],'v,[`Server])Proxy.t->button_map:Imports.River_libinput_device_v1.Clickfinger_button_map.t->unit(** Set clickfinger button map.
Set clickfinger button map.
Supported if click_methods.clickfinger is supported. *)methodprivatevirtualon_set_middle_emulation:[>`V2]t->([`River_libinput_result_v1],'v,[`Server])Proxy.t->state:Imports.River_libinput_device_v1.Middle_emulation_state.t->unit(** Set middle mouse button emulation state.
Set middle mouse button emulation state. *)methodprivatevirtualon_set_scroll_method:[>`V2]t->([`River_libinput_result_v1],'v,[`Server])Proxy.t->method_:Imports.River_libinput_device_v1.Scroll_method.t->unit(** Set scroll method.
Set scroll method. *)methodprivatevirtualon_set_scroll_button:[>`V2]t->([`River_libinput_result_v1],'v,[`Server])Proxy.t->button:int32->unit(** Set scroll button.
Set scroll button.
Supported if scroll_methods.on_button_down is supported. *)methodprivatevirtualon_set_scroll_button_lock:[>`V2]t->([`River_libinput_result_v1],'v,[`Server])Proxy.t->state:Imports.River_libinput_device_v1.Scroll_button_lock_state.t->unit(** Set scroll button lock state.
Set scroll button lock state.
Supported if scroll_methods.on_button_down is supported. *)methodprivatevirtualon_set_dwt:[>`V2]t->([`River_libinput_result_v1],'v,[`Server])Proxy.t->state:Imports.River_libinput_device_v1.Dwt_state.t->unit(** Set disable-while-typing state.
Set disable-while-typing state. *)methodprivatevirtualon_set_dwtp:[>`V2]t->([`River_libinput_result_v1],'v,[`Server])Proxy.t->state:Imports.River_libinput_device_v1.Dwtp_state.t->unit(** Set disable-while-trackpointing state.
Set disable-while-trackpointing state. *)methodprivatevirtualon_set_rotation:[>`V2]t->([`River_libinput_result_v1],'v,[`Server])Proxy.t->angle:int32->unit(** Set rotation angle.
Set rotation angle in degrees clockwise off the logical neutral
position. Angle must be in the range [0-360). *)methodmin_version=2lendend(** Acceleration config.
The result returned by libinput on setting configuration for a device. *)moduleRiver_libinput_accel_config_v1=structtype'vt=([`River_libinput_accel_config_v1],'v,[`Server])Proxy.tmoduleError=River_libinput_config_v1_proto.River_libinput_accel_config_v1.ErrormoduleAccel_type=River_libinput_config_v1_proto.River_libinput_accel_config_v1.Accel_type(** {2 Version 1} *)(**/**)classvirtual['v]_handlers_unsafe=object(_self:(_,'v,_)#Proxy.Handler.t)methoduser_data=S.No_datamethodmetadata=(moduleRiver_libinput_config_v1_proto.River_libinput_accel_config_v1)methodmax_version=1lmethodprivatevirtualon_destroy:[>]t->unitmethodprivatevirtualon_set_points:[>]t->([`River_libinput_result_v1],'v,[`Server])Proxy.t->type_:Imports.River_libinput_accel_config_v1.Accel_type.t->step:string->points:string->unitmethoddispatch(_proxy:'vt)_msg=let_proxy=Proxy.cast_version_proxyinmatchMsg.op_msgwith|0->Proxy.shutdown_recv_proxy;_self#on_destroy_proxy|1->letresult:([`River_libinput_result_v1],_,_)Proxy.t=Msg.get_int_msg|>Proxy.Handler.accept_new_proxy(moduleImports.River_libinput_result_v1)inlettype_=Msg.get_int_msg|>Imports.River_libinput_accel_config_v1.Accel_type.of_int32inletstep=Msg.get_array_msginletpoints=Msg.get_array_msgin_self#on_set_points_proxyresult~type_~step~points|_->assertfalseend(**/**)(** {2 Handlers}
Note: Servers will always want to use [v1].
*)(** Handler for a proxy with version >= 1. *)classvirtual['v]v1=object(_:(_,'v,_)#Proxy.Service_handler.t)(**/**)inherit[[<`V1]as'v]_handlers_unsafe(**/**)methodprivatevirtualon_destroy:[>`V1]t->unit(** Destroy the accel object.
This request indicates that the client will no longer use the accel
config object and that it may be safely destroyed. *)methodprivatevirtualon_set_points:[>`V1]t->([`River_libinput_result_v1],'v,[`Server])Proxy.t->type_:Imports.River_libinput_accel_config_v1.Accel_type.t->step:string->points:string->unit(** Define custom acceleration function.
Defines the acceleration function for a given movement type
in an acceleration configuration with custom accel profile. *)methodmin_version=1lendend(** Config application result.
The result returned by libinput on setting configuration for a device. *)moduleRiver_libinput_result_v1=structtype'vt=([`River_libinput_result_v1],'v,[`Server])Proxy.t(** {2 Version 1} *)(** Config invalid.
The configuration is invalid and was ignored. *)letinvalid(_t:([<`V1]as'v)t)=let_msg=Proxy.alloc_t~op:2~ints:0~strings:[]~arrays:[]inProxy.send_t_msg;Proxy.shutdown_send_t(** Config unsupported.
The configuration is unsupported by the device and was ignored. *)letunsupported(_t:([<`V1]as'v)t)=let_msg=Proxy.alloc_t~op:1~ints:0~strings:[]~arrays:[]inProxy.send_t_msg;Proxy.shutdown_send_t(** Config success.
The configuration was successfully applied to the device. *)letsuccess(_t:([<`V1]as'v)t)=let_msg=Proxy.alloc_t~op:0~ints:0~strings:[]~arrays:[]inProxy.send_t_msg;Proxy.shutdown_send_t(**/**)class['v]_handlers_unsafe=object(_self:(_,'v,_)#Proxy.Handler.t)methoduser_data=S.No_datamethodmetadata=(moduleRiver_libinput_config_v1_proto.River_libinput_result_v1)methodmax_version=1lmethoddispatch(_proxy:'vt)_msg=let_proxy=Proxy.cast_version_proxyinmatchMsg.op_msgwith|_->assertfalseend(**/**)(** {2 Handlers}
Note: Servers will always want to use [v1].
*)(** Handler for a proxy with version >= 1. *)class['v]v1=object(_:(_,'v,_)#Proxy.Service_handler.t)(**/**)inherit[[<`V1]as'v]_handlers_unsafe(**/**)methodmin_version=1lendend