8a3576425e8cf59b021b273ee21a12c7a529db3a
[tpg/acess2.git] / image.c
1 /*
2  * Acess2 Window Manager v3
3  * - By John Hodge (thePowersGang)
4  * 
5  * renderer/widget/image.c
6  * - Image Widget Type
7  */
8 #include <common.h>
9 #include "./common.h"
10 #include "./colours.h"
11 #include "../../include/image.h"
12
13 void Widget_Image_Render(tWindow *Window, tElement *Element)
14 {
15         WM_Render_DrawImage(
16                 Window,
17                 Element->CachedX, Element->CachedY,
18                 Element->CachedW, Element->CachedH,
19                 Element->Data
20                 );
21 }
22
23 void Widget_Image_UpdateText(tElement *Element, const char *Text)
24 {
25         if(Element->Data)       free(Element->Data);
26         Element->Data = Image_Load( Text );
27         if(!Element->Data) {
28 //              Element->Flags &= ~ELEFLAG_FIXEDSIZE;
29                 return ;
30         }
31         
32         Element->CachedW = ((tImage*)Element->Data)->Width;
33         Element->CachedH = ((tImage*)Element->Data)->Height;
34         
35         if(Element->Parent && (Element->Parent->Flags & ELEFLAG_VERTICAL) ) {
36                 Element->MinCross = ((tImage*)Element->Data)->Width;
37                 Element->MinWith = ((tImage*)Element->Data)->Height;
38         }
39         else {
40                 Element->MinWith = ((tImage*)Element->Data)->Width;
41                 Element->MinCross = ((tImage*)Element->Data)->Height;
42         }
43
44         Widget_UpdateMinDims(Element->Parent);
45         
46         // NOTE: Doesn't update Element->Text because it's useless
47 }
48
49 DEFWIDGETTYPE(ELETYPE_IMAGE,
50         WIDGETTYPE_FLAG_NOCHILDREN,
51         .Render = Widget_Image_Render,
52         .UpdateText = Widget_Image_UpdateText
53         );
54

UCC git Repository :: git.ucc.asn.au