Explorar el Código

demo: comboboxbox: added ugly arrow

mattias hace 11 meses
padre
commit
a16fcacaa7

BIN
demo/Combobox/ArrowDown.png


+ 32 - 0
demo/Combobox/DemoCombobox.inc

@@ -0,0 +1,32 @@
+const ArrowDownImage =
+  #137'PNG'#13#10#26#10#0#0#0#13'IHDR'#0#0#0#20#0#0#0#20#8#6#0#0#0#141#137#29#13
+  +#0#0#1#132'iCCPICC profile'#0#0'('#145'}'#145'=H'#195'P'#20#133'OSE)'#149#14
+  +'v'#16'Q'#200'P'#157','#136#138'8j'#21#138'P!'#212#10#173':'#152#188#244#15
+  +#154'4$).'#142#130'k'#193#193#159#197#170#131#139#179#174#14#174#130' '#248#3
+  +#226#236#224#164#232'"%'#222#151#20'Z'#196'x'#225#241'>'#206#187#231#240#222
+  +'}'#128#208#168'0'#205#234#26#7'4'#221'6'#211#201#132#152#205#173#138'='#175
+  +#8'!'#128'0"'#24#150#153'e'#204'IR'#10#190#245'uO'#189'Twq'#158#229#223#247
+  +'g'#245#169'y'#139#1#1#145'x'#150#25#166'M'#188'A<'#189'i'#27#156#247#137#163
+  +#172'$'#171#196#231#196'c&]'#144#248#145#235#138#199'o'#156#139'.'#11'<3jf'
+  +#210#243#196'Qb'#177#216#193'J'#7#179#146#169#17'O'#17#199'TM'#167'|!'#235
+  +#177#202'y'#139#179'V'#169#177#214'='#249#11#195'y}e'#153#235#180#134#144#196
+  +'"'#150' A'#132#130#26#202#168#192'F'#156'v'#157#20#11'i:O'#248#248#7']'#191
+  +'D.'#133'\e0r,'#160#10#13#178#235#7#255#131#223#179#181#10#147#19'^R8'#1't'
+  +#191'8'#206#199#8#208#179#11'4'#235#142#243'}'#236'8'#205#19' '#248#12'\'#233
+  +'m'#127#181#1#204'|'#146'^ok'#177'# '#178#13'\\'#183'5e'#15#184#220#1#6#158
+  +#12#217#148'])HK('#20#128#247'3'#250#166#28#208#127#11#132#214#188#185#181
+  +#206'q'#250#0'dhV'#169#27#224#224#16#24'-R'#246#186#207#187'{;'#231#246'oOk~'
+  +'?'#27#150'r'#132'#'#222#176#242#0#0#0#6'bKGD'#0#255#0#255#0#255#160#189#167
+  +#147#0#0#0#9'pHYs'#0#0#11#19#0#0#11#19#1#0#154#156#24#0#0#0#7'tIME'#7#232#10
+  +#1#16':'#26#0'"'#200#248#0#0#0#237'IDAT8'#203#237#212#189'K'#130'Q'#20#6#240
+  +#31'}(e'#205#5#13#129#208#234#160#14'ACKc'#4#5#181#183#5'BCcK47'#247#151#248
+  +#23#137#139#5'}'#188#213#171#175#182#180#28'!'#196'4'#19#164#193#3'w'#184#247
+  +'><'#247'<'#207'9'#231'2'#143#255#16#11'?mv'#176'='#1'Q'#14'E'#236#14#146#246
+  +#201#186#248#192#30#150#198#144#173#225#22#207'x'#194#214' `'#19#15#177':'
+  +#184#26'A'#154#195#13#222#209'F'#11#27#195'|8D3^'#204#176#143#229'!'#184'2'
+  +#30'CQ'#130#210'(sKx'#197'gdz'#141'|'#220#175#226'(Tt'#3'W'#25'gt'#30'wHCN'
+  +#130#227#240#236'>'#228#245#240#134#218'/'#188#6'+8'#11#178#20#13#156'G'#198
+  +'Y'#156']b}'#210#222#170#134#172'4'#170#217#247#236#4#133#191'6m9'#200'2'#188
+  +#224'"'#170'<'#213#20#28#160#142#211'o'#5#154'z'#180#10'X'#156#255'2'#179#137
+  +'/'#30#184'2v'#205'TF'#15#0#0#0#0'IEND'#174'B`'#130;
+

+ 19 - 4
demo/Combobox/DemoCombobox.pas

@@ -5,7 +5,7 @@ unit DemoCombobox;
 interface
 
 uses
-  Classes, SysUtils, System.UITypes, Fresnel.DOM, Fresnel.Controls,
+  Classes, SysUtils, System.UITypes, FPReadPNG, Fresnel.DOM, Fresnel.Controls,
   Fresnel.Classes, FCL.Events, Fresnel.Events, fpCSSTree;
 
 type
@@ -47,6 +47,8 @@ type
         +'.ComboboxCaptionLabel {'+LineEnding
         +'}'+LineEnding
         +'.ComboboxCaptionIcon {'+LineEnding
+        +'  width: 20px;'+LineEnding
+        +'  height: 20px;'+LineEnding
         +'}'+LineEnding
         +'.ComboboxMenu {'+LineEnding
         +'  position: absolute;'+LineEnding
@@ -70,7 +72,7 @@ type
   public
     CaptionDiv: TDiv;
     CaptionLabel: TLabel;
-    CaptionIcon: TLabel;
+    CaptionIcon: TImage;
     Menu: TDiv;
     Content: TDiv;
     constructor Create(AOwner: TComponent); override;
@@ -86,6 +88,8 @@ type
 
 implementation
 
+{$I DemoCombobox.inc}
+
 { TDemoCombobox }
 
 procedure TDemoCombobox.SetItems(const AValue: TStrings);
@@ -169,6 +173,8 @@ begin
 end;
 
 constructor TDemoCombobox.Create(AOwner: TComponent);
+var
+  aStream: TMemoryStream;
 begin
   inherited Create(AOwner);
   FItemIndex:=-1;
@@ -193,13 +199,22 @@ begin
     Parent:=CaptionDiv;
   end;
 
-  CaptionIcon:=TLabel.Create(Self);
+  CaptionIcon:=TImage.Create(Self);
   with CaptionIcon do begin
     Name:='CaptionIcon';
-    Caption:=#$E2#$8C#$84; // Down Arrowhead
+    //Caption:=#$E2#$8C#$84; // Down Arrowhead
     CSSClasses.Add('ComboboxCaptionIcon');
     Parent:=CaptionDiv;
   end;
+  aStream:=TMemoryStream.Create;
+  try
+    writeln('TDemoCombobox.Create ',ord(ArrowDownImage[1]),' ',length(ArrowDownImage));
+    aStream.WriteBuffer(ArrowDownImage[1],length(ArrowDownImage));
+    aStream.Position:=0;
+    CaptionIcon.Image.LoadFromStream(aStream);
+  finally
+    aStream.Free;
+  end;
 
   Menu:=TDiv.Create(Self);
   with Menu do begin

+ 3 - 1
src/gtk3/fresnel.gtk3.pas

@@ -409,7 +409,7 @@ var
   end;
 
 begin
-  Result:=true;
+  Result:=false;
   WSData:=Default(TFresnelMouseEventInit);
   MButton := Event^.button.button;
 
@@ -426,6 +426,7 @@ begin
     end;
   GDK_BUTTON_PRESS,GDK_DOUBLE_BUTTON_PRESS,GDK_TRIPLE_BUTTON_PRESS:
     begin
+      Result:=true;
       EventId:=evtMouseDown;
       //writeln('TGtk3WSForm.GtkEventMouseXY ',Event^.type_,' MButton=',MButton,' button.window=',hexstr(ptruint(Event^.button.window),16),' send_event=',Event^.button.send_event,' state=',integer(Event^.button.state),' time=',Event^.button.time);
       PressRelease;
@@ -439,6 +440,7 @@ begin
     end;
   GDK_BUTTON_RELEASE:
     begin
+      Result:=true;
       EventId:=evtMouseUp;
       PressRelease;
     end;