On Mon, 10 Oct 2011 09:57:33 -0700 "Ausmus, James" <james.aus...@intel.com> said:
> On Fri, Oct 7, 2011 at 7:45 PM, Carsten Haitzler <ras...@rasterman.com> wrote: > > On Fri, 7 Oct 2011 14:16:58 -0700 "Ausmus, James" <james.aus...@intel.com> > > said: > > > >> On Fri, Oct 7, 2011 at 2:20 AM, Tom Hacohen <t...@stosb.com> wrote: > >> > I'm away from home/computers until Saturday evening (leaving now), I'll > >> > take a look at it soon after. > >> > > >> > But I have a couple of questions until then: > >> > What sizing do you get? what do you expect? The elm minimum height > >> > should change according to the font size (unless it's smaller than the > >> > finger size, which is then used). > >> > >> It's taller than the part underneath it that it is set to be relative > >> to and smaller than. However, I'm betting that the finger size thing > >> is the issue here - any way to override/set the finger size > >> dynamically, to be able to get around that limitation in one-off > >> situations? > > > > use a label then, not entry. an entry is there for the purpose of entering > > text or selecting it etc. - not just display. thus it forces it to be at > > least a finger size in height for single line entries (for multiple line > > its a bit nastier so it doesn't currently). the whole point of finger size > > it to ensure a person can reliably press on it. if you have a desktop app > > finger size should be globally on your system set to something low - like > > "5". so you wont have a problem. but elm is fixing the ui to make it usable > > for people. you don't need your ui test department now to tell you to fix > > it anymore. :) > > > Unfortunately, I need actual text entry, not just display. I agree > that, if *everything* else on a given platform is working correctly, > then the finger size should already be set at the appropriate value, > and everything would work great. However, if there are other > platform-level issues/misconfigurations/evolutions in play, I either > have to wait for someone else to finish their job, do someone else's > job for them, or just have my deliverables look ugly (and most > higher-level managers I've dealt with don't usually like the "It's not > my fault/job!" answer...). you can tell your manager to give me a call land i'll set them straight. :) > Again, I agree with the concept, but not having any way to work around > it, *forcing* every possible application to fit within a pre-conceived > paradigm of how the platform should work, seems a little > over-restrictive and broken... that's the POINT of a widget set. the POINT of a toolkit. consistency. being usable DESPITE the programmer who really isn't considering such usability issues. it's the same as theme, fonts, and other factors. it's a global config value and to be set globally. if every app goes making its own themes, using its own fonts and sizes, then you end up with a mess. sure. it CAN be done. you just have to stop using edje and many parts of elementary and start manually stuffing things around the screen. the complexity of your app will go up a lot. that's INTENTIONAL. it's creating a technical barrier making you do immensely more work to "disagree" with the designs of the toolkit. it's there to discourage you from disagreeing. :) all of the elements obey these paradigms. all widgets that are to be interacted with set their minimum sizes based on visible content and finger size. edje respects minimum size hints as well thus making your entry the size it is. they are all "playing by the rules of the game". let me put this another way. if you said: my manager just won't understand that when i say "i can't do this - because normal user id's are not allowed. i need root access and have to wait for the XYZ team to finish creating a privileged access api via dbus before that can work", would you go to linus and say "hey linus. why don't you just drop this root privilege stuff. it makes my manager unhappy that i have to wait for others to grant my process controlled access to such features. i don't think your pre-conceived paradigm of how the platform should work is right"... would you do that? of course not! why does "security" get a free ride to be a pain in the butt and stop people and other factors like guaranteeing usability (or helping to) need to be able to be worked around trivially at any point? you might want to explain it that way to your "manager". > Thanks! > > -James > > > > >> Thanks! > >> > >> -James > >> > >> > > >> > -- > >> > Tom. > >> > > >> > On 07/10/11 02:45, Ausmus, James wrote: > >> >> Hi All- > >> >> > >> >> It appears that a standard Elementary entry widget has a minimum > >> >> height that it refuses to size beneath, regardless of the font size > >> >> being used, as demonstrated by the entry.c and entry.edc files below. > >> >> > >> >> Is there any way around this? How can I get a "short" Elm entry that > >> >> actually obeys the size of the swallow - do I need to fully grok and > >> >> recreate the default Elm theme for an entry in order to reduce the min > >> >> height of it's visual components, or is there a (much) easier way? :) > >> >> > >> >> Thanks! > >> >> > >> >> -James > >> >> > >> >> > >> >> /****************************************************************************/ > >> >> /*Begin entry.c */ > >> >> #include <stdio.h> > >> >> #include <Elementary.h> > >> >> #include <Edje.h> > >> >> > >> >> //UI signal callbacks > >> >> > >> >> static Evas_Object *ly; > >> >> > >> >> void main_quit_cb(void *data, Evas_Object *obj, > >> >> const char *emission, const char *source) > >> >> { > >> >> int x, y, h, w; > >> >> edje_object_part_geometry_get(elm_layout_edje_get(ly), > >> >> "input_bg", &x, &y, &w, &h); > >> >> printf("after ibg geo: %i/%i, %i/%i\n", x, y, w, h); > >> >> edje_object_part_geometry_get(elm_layout_edje_get(ly), > >> >> "input_swallow", &x, &y, &w, &h); > >> >> printf("after is geo: %i/%i, %i/%i\n", x, y, w, h); > >> >> elm_exit(); > >> >> } > >> >> > >> >> static Evas_Object* load_edj(Evas_Object *parent, const char *file, > >> >> const char *group) > >> >> { > >> >> Evas_Object *eo; > >> >> int r; > >> >> > >> >> eo = elm_layout_add(parent); > >> >> if (eo) { > >> >> r = elm_layout_file_set(eo, file, group); > >> >> if (!r) { > >> >> evas_object_del(eo); > >> >> return NULL; > >> >> } > >> >> > >> >> evas_object_size_hint_weight_set(eo, > >> >> EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); > >> >> } > >> >> return eo; > >> >> } > >> >> > >> >> int elm_main(int argc, char *argv[]) > >> >> { > >> >> Evas_Object *win = NULL; > >> >> Evas_Object *tb; > >> >> int nw, nh; > >> >> > >> >> /* create window */ > >> >> win = elm_win_add(NULL, "entry", ELM_WIN_BASIC); > >> >> if (win) { > >> >> elm_win_title_set(win, "entry"); > >> >> ecore_x_window_size_get(ecore_x_window_root_first_get(), > >> >> &nw, &nh); > >> >> evas_object_resize(win, nw, nh); > >> >> } else { > >> >> printf("couldn't create win!\n"); > >> >> return -1; > >> >> } > >> >> /* load edje */ > >> >> ly = load_edj(win, "entry.edj", "ui"); > >> >> if (ly == NULL) { > >> >> printf("Couldn't create layout!\n"); > >> >> return -1; > >> >> } > >> >> elm_win_resize_object_add(win, ly); > >> >> edje_object_signal_callback_add(elm_layout_edje_get(ly), > >> >> "DONE_EXIT", "*", main_quit_cb, NULL); > >> >> > >> >> > >> >> tb = elm_entry_add(ly); > >> >> if (tb) { > >> >> elm_entry_entry_set(tb, "<font size='4' > >> >> color='white'>"); elm_entry_single_line_set(tb, EINA_TRUE); > >> >> elm_layout_content_set(ly, "input_swallow", tb); > >> >> } else { > >> >> printf("Got null TB!\n"); > >> >> return -1; > >> >> } > >> >> > >> >> evas_object_show(ly); > >> >> evas_object_show(win); > >> >> > >> >> elm_run(); > >> >> elm_shutdown(); > >> >> return 0; > >> >> } > >> >> > >> >> ELM_MAIN(); > >> >> > >> >> /* End entry.c */ > >> >> /****************************************************************************/ > >> >> > >> >> /****************************************************************************/ > >> >> /* Begin entry.edc */ > >> >> collections { > >> >> > >> >> group { > >> >> name: "ui"; > >> >> parts { > >> >> > >> >> part { > >> >> name: "background"; > >> >> type: RECT; > >> >> description { > >> >> state: "default" 0.0; > >> >> color: 0 0 0 100; > >> >> } > >> >> program { > >> >> name: "background_clicked"; > >> >> source: "background"; > >> >> signal: "mouse,clicked,*"; > >> >> action: SIGNAL_EMIT "DONE_EXIT" > >> >> "UI"; } > >> >> } > >> >> > >> >> part { > >> >> name: "input_bg"; > >> >> type: RECT; > >> >> description { > >> >> state: "default" 0.0; > >> >> rel1 { relative: 0.37773 > >> >> 0.04375; } rel2 { relative: 0.62227 0.06; } > >> >> color: 100 100 100 255; > >> >> fixed: 1 1; > >> >> } > >> >> } > >> >> > >> >> part { > >> >> name: "temp_tb_bg"; > >> >> type: RECT; > >> >> description { > >> >> state: "default" 0.0; > >> >> rel1 { to: "input_swallow"; } > >> >> rel2 { to: "input_swallow"; } > >> >> color: 255 0 0 255; > >> >> visible: 1; > >> >> } > >> >> } > >> >> > >> >> part { > >> >> name: "input_swallow"; > >> >> type: SWALLOW; > >> >> description { > >> >> state: "default" 0.0; > >> >> rel1 { relative: 0.12 0.15; > >> >> to: "input_bg"; } > >> >> rel2 { relative: 0.96 0.9; to: > >> >> "input_bg"; } > >> >> fixed: 1 1; > >> >> } > >> >> } > >> >> > >> >> } > >> >> } //group > >> >> } > >> >> > >> >> /* End entry.edc */ > >> >> /****************************************************************************/ > >> >> > >> >> ------------------------------------------------------------------------------ > >> >> All of the data generated in your IT infrastructure is seriously > >> >> valuable. Why? It contains a definitive record of application > >> >> performance, security threats, fraudulent activity, and more. Splunk > >> >> takes this data and makes sense of it. IT sense. And common sense. > >> >> http://p.sf.net/sfu/splunk-d2dcopy2 > >> >> _______________________________________________ > >> >> enlightenment-devel mailing list > >> >> enlightenment-devel@lists.sourceforge.net > >> >> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > >> > > >> > > >> > >> ------------------------------------------------------------------------------ > >> All of the data generated in your IT infrastructure is seriously valuable. > >> Why? It contains a definitive record of application performance, security > >> threats, fraudulent activity, and more. Splunk takes this data and makes > >> sense of it. IT sense. And common sense. > >> http://p.sf.net/sfu/splunk-d2dcopy2 > >> _______________________________________________ > >> enlightenment-devel mailing list > >> enlightenment-devel@lists.sourceforge.net > >> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > >> > > > > > > -- > > ------------- Codito, ergo sum - "I code, therefore I am" -------------- > > The Rasterman (Carsten Haitzler) ras...@rasterman.com > > > > > > ------------------------------------------------------------------------------ > All the data continuously generated in your IT infrastructure contains a > definitive record of customers, application performance, security > threats, fraudulent activity and more. Splunk takes this data and makes > sense of it. Business sense. IT sense. Common sense. > http://p.sf.net/sfu/splunk-d2dcopy1 > _______________________________________________ > enlightenment-devel mailing list > enlightenment-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > -- ------------- Codito, ergo sum - "I code, therefore I am" -------------- The Rasterman (Carsten Haitzler) ras...@rasterman.com ------------------------------------------------------------------------------ All the data continuously generated in your IT infrastructure contains a definitive record of customers, application performance, security threats, fraudulent activity and more. Splunk takes this data and makes sense of it. Business sense. IT sense. Common sense. http://p.sf.net/sfu/splunk-d2d-oct _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel