<?xml version="1.0" encoding="utf-8"?>
<data>
<r t="14.16">hope you can all you me it's not that you know and peace to free</r>
<r t="18.31">to interrupted anytimes and questions</r>
<r t="21.55">so the topic is G T K propagation developers and</r>
<r t="26.03">i've</r>
<r t="27.43">but not us but it's an abstract that wasn't really clear on what i was</r>
<r t="30.05">going to do so well actually sit down to write prepared this talk i figured</r>
<r t="34.58">and i want to try and just show some examples of what's possible this project</r>
<r t="38.18">a K and i hope i can convey these examples that it's actually it's really</r>
<r t="42.32">easy not to build country style applications as we expect them to be that they</r>
<r t="47.18">had about that's</r>
<r t="48.67">nicely nice transitions and all that stuff that you see in blocks and rather than</r>
<r t="52.29">and these applications</r>
<r t="53.98">this is dedicated point and</r>
<r t="56.89">but most of the building block so that are in place and</r>
<r t="60.73">it doesn't take that much work to get something like that off the ground</r>
<r t="64.04">and i will show that in the series of examples</r>
<r t="68.37">then i had his nine steps</r>
<r t="70.35">yesterday's on going to show nine example sell forget so the</r>
<r t="74.25">and at the end i will have something that looks a bit like an application</r>
<r t="77.87">just really limited but that's something</r>
<r t="80.94">hopefully inspiring and i did not prepare a slide so this instead i decided i</r>
<r t="86.75">want this material to be available for the longer term so i will call as</r>
<r t="91.35">actually wanna but examples they all available in the did okay so three itself sometime</r>
<r t="96.53">last week</r>
<r t="98.01">and that extra rolled around it is it's all available in the G D K</r>
<r t="102.21">A P I documentation you have a tutorial section there and you check that right</r>
<r t="106.8">so you can look on it up online if you want</r>
<r t="110.23">it's available that solve</r>
<r t="113.45">last week</r>
<r t="114.97">and we'll see how well it actually works for talk it's an experiment so let</r>
<r t="118.76">me know if it doesn't work more than five to do something else</r>
<r t="121.79">so but before we step into the examples maybe it's were stepping back a little</r>
<r t="125.71">bit and ask what actually is an application we learned from that out yesterday</r>
<r t="131.33">how we things an application to look at the star trek future it's all the</r>
<r t="134.14">single bundle that you can just download and run it without installation it will be</r>
<r t="138.79">very cool but that's not quite where we are today so as of today applications</r>
<r t="143.73">that have a number of things that need to be spread around to five system</r>
<r t="147.33">and i just put up the list the of the things that are they obviously</r>
<r t="151.8">it's the application binary itself expected will use a bit</r>
<r t="156.36">then applications need to have a testify that's pretty from the established that the show</r>
<r t="160.13">can actually displayed nicely and it also needs and i can for that obviously</r>
<r t="165.78">and then every nontrivial applications will have some settings and for that we need a</r>
<r t="170.13">setting schema and then they might be just a miscellaneous other resources like you i</r>
<r t="175.18">files and whatnot</r>
<r t="177.28">which you would ordinarily also spatter on the five system</r>
<r t="181.3">but we actually have resources nowadays if you pay attention to the examples to see</r>
<r t="185.75">that we actually get to put all those other resources inside the binary itself so</r>
<r t="190.31">that's all already a pretty good step towards the</r>
<r t="193.78">single file application future</r>
<r t="196.56">that we want to get to</r>
<r t="198.76">and don't here i'll talk a little bit about all the stuff that i'm hoping</r>
<r t="203.37">to touch on the examples</r>
<r t="205.2">i'm not gonna we the whole list here you can see this stuff to go</r>
<r t="209.22">to so let's get to it</r>
<r t="212.05">in stockholm building up a vacation</r>
<r t="215.27">so the first thing to know about they don't want to use jic application here</r>
<r t="220.25">which is the application class that you can provide so that yes</r>
<r t="224.75">yes i know i just wanted to have the idea one line main functions like</r>
<r t="230.26">i was willing to like except that league</r>
<r t="238.23">so let's not go to too much on that the one thing to take away</r>
<r t="240.52">he is that the main function is really not ready action is it's just the</r>
<r t="244">one line that the really just creates an instance of obligation class and then we</r>
<r t="249.57">college application on it and to give at the command of parameters minutes it</r>
<r t="253.8">not much else to that's all the all the logic of application and all the</r>
<r t="257.15">ending of command line options and all that is happening in the application class</r>
<r t="262.34">so one and a little bit us a very trivial application classes we do some</r>
<r t="268.28">plastic application for that that's the intended way of using it</r>
<r t="272.77">and we used to the usual G object want to pay for that we don't</r>
<r t="277.67">really implement anything here yet</r>
<r t="280.98">just december entry points to applications this for instance if you just run the application</r>
<r t="285.19">all about them not giving it any arguments then we have an entry point it's</r>
<r t="290.74">called active at a</r>
<r t="293.27">which is what is called when you in then you just run it by itself</r>
<r t="297.77">and i have a kind of trivial application at implementation of that here which just</r>
<r t="302.21">creates a new window and then presented</r>
<r t="305.51">the entry point that i have implemented years opening files</r>
<r t="310.61">so if you run the application and give it file filenames on the command line</r>
<r t="314.71">well colour different into point it's called open and that gets an array of files</r>
<r t="320.29">and in this implementation here not much is happening we just</r>
<r t="323.86">again we created i would know and then we call this</r>
<r t="327.55">open function for each of the files and</r>
<r t="330.4">magic might happen the functional not</r>
<r t="333.64">and that's about it one thing to maybe briefly possible look at is</r>
<r t="338.81">that creating an application</r>
<r t="341.73">subclass you always want to have an application id that's kind important because that's really</r>
<r t="346.21">very central concept in the board of the application you really want to have an</r>
<r t="349.66">application id which is used as the last name and it seems just of ideally</r>
<r t="353.35">you system in for the best of file and all those things so we need</r>
<r t="356.48">a unique identifier for the implication</r>
<r t="359.31">and that's this idea here</r>
<r t="363.86">that's not a of this fairly trivial skeleton implementation is that just saw for that</r>
<r t="369.34">at some places i created windows</r>
<r t="373.73">and those and those are actually instances of this class example up a little</r>
<r t="379.37">which is a subclass of G T K application bundle and</r>
<r t="383.3">again this is an entirely empty imitation does nothing but than necessary scalable is a</r>
<r t="388.82">so it's a question like the last slide would be one line and it's this</r>
<r t="392.3">main what do you can tax you bind text domain is that handled for you</r>
<r t="397.37">and you have to shine directly or should and i mean as well i only</r>
<r t="400.46">glanced over that here but i guess you would have to do some setup work</r>
<r t="403.34">for that and okay so you do that automatically there's no magic that's just a</r>
<r t="407.8">matter don't know okay</r>
<r t="410.43">maybe my dad that if you to i don't know that</r>
<r t="414.82">so maybe things are changing that offer knowledgeable if you wanted internationalisation you have to</r>
<r t="418.92">set that up</r>
<r t="420.79">okay</r>
<r t="422.31">last thing that i have in this initial example is that we also one and</r>
<r t="427.47">i can attest of file up is the created some</r>
<r t="431.08">model like i can dare think the game for five minutes</r>
<r t="435.6">and</r>
<r t="437.27">the decibel it after five years also very couple of i just put an ad</r>
<r t="441.93">in the idea</r>
<r t="443.76">just to cheat a little bit because i'm running one able runs that location in</r>
<r t="447.61">a minute and i'm actually running it uninstalled so i have to actually catch to</r>
<r t="451.87">like being here</r>
<r t="453.67">to make that work</r>
<r t="456.17">and we actually switch to</r>
<r t="459.01">running his example</r>
<r t="464.92">should also take first</r>
<r t="467.7">this is inside the G T K so it is an examples directory and if</r>
<r t="471.19">you look and that</r>
<r t="472.69">this nine subdirectories which contain examples and i'm going to here</r>
<r t="477.2">and right now i'm stepping into the first one</r>
<r t="482.7">and it's already component are running it</r>
<r t="486.8">who this my educational it's not very exciting admittedly</r>
<r t="490.44">doesn't really contain anything it doesn't even will the title</r>
<r t="493.55">but</r>
<r t="495.72">notice that the channel already picks up the it has some five</r>
<r t="499.28">and find see i can we just because i she did a little bit and</r>
<r t="502.17">put the i can in the whole local share i can somewhere and up to</r>
<r t="506.99">justify there's also just that this works you</r>
<r t="510.76">and realised of course it's all these files and user share somewhere</r>
<r t="515.13">have it worked that way</r>
<r t="517.79">so it's not very impressive but admittedly we didn't write much good either and</r>
<r t="523.36">well there's not much to see this already</r>
<r t="526.06">it's a football geolocation which has a presence on the bus a single instance</r>
<r t="531.65">characteristics</r>
<r t="533.37">and it technically also kind of file so right now i just activated that are</r>
<r t="537.49">running it without arguments but it could give it a</r>
<r t="541.96">an argument like this</r>
<r t="544.45">well nothing else happens because we'd have implemented the open function yet but at least</r>
<r t="547.88">it accepts the adamant</r>
<r t="550.09">and things are set up for the next</r>
<r t="555.25">so step to is</r>
<r t="557.48">this winter was twenty so yes</r>
<r t="562.18">it's annoying isn't</r>
<r t="564.32">so they're not here</r>
<r t="567.14">and then for that</r>
<r t="568.89">okay so i'm next that is still</r>
<r t="572.07">get some content and the window so that we are using something that if you</r>
<r t="576.3">went to just on stock just before lunch you probably talked about ten that's</r>
<r t="581.1">maybe you didn't did you</r>
<r t="583.09">okay so we're using complex this is all just on that in the last year</r>
<r t="587.24">or two and it finally landed in G T K</r>
<r t="590.86">so what's attempted is likely you i follicles want to use to editing that's great</r>
<r t="595.93">operating late</r>
<r t="597.66">and</r>
<r t="599.25">just like that you can see the beginning of the file</r>
<r t="602.13">the my main difference between that and the directional you i find is that attempted</r>
<r t="605.55">actually define say it complex which is like a container with internal structure</r>
<r t="610.07">and you can use clay for populating that instead of having to manually writing in</r>
<r t="613.85">that function that that's G T K contain i had of this G T K</r>
<r t="617.07">box next out of that and handily really write a lot of code for populating</r>
<r t="622.99">your constructed your complex you are you can one adding like know which is really</r>
<r t="627.32">pretty nice</r>
<r t="628.52">and so he is our initial and that</r>
<r t="632.98">you can see we have a defining the example happen a class that i showed</r>
<r t="636.96">earlier</r>
<r t="638.21">maybe just pack a few things in the first of all we set some useful</r>
<r t="641.88">properties like to be no title and the people size</r>
<r t="645.21">maybe put in the box and they have the populate the box that i had</r>
<r t="648.36">about a stack</r>
<r t="650.18">you can stick and didn't and inside the had about we have a stack switching</r>
<r t="655.04">and i see these which it and actually in a minute</r>
<r t="659.75">but first able to stop briefly and show how we actually get to use this</r>
<r t="663.32">template so now we just click on the set</r>
<r t="665.61">you i file</r>
<r t="667.19">and</r>
<r t="669.55">to make use of it for actually defining application middle class we because a function</r>
<r t="673.75">called G T K widget class set template from resource</r>
<r t="678.2">which finds this templates</r>
<r t="680.49">to our</r>
<r t="681.77">or subclass</r>
<r t="683.78">and i talk about the results that in a minute bottom that's the first step</r>
<r t="687.59">the other step is that then we actually instantiate this class integrated application the know</r>
<r t="692.83">in the in a function for that we have to called you can project in</r>
<r t="696.81">the template actually use the template and populate our instance</r>
<r t="703.02">it's a two steps for using attempted</r>
<r t="705.88">and i touched on that earlier be using resources</r>
<r t="710.47">and</r>
<r t="711.92">that means that we actually take this window dot U I for the to the</r>
<r t="716.1">national italian fee turn it into a</r>
<r t="720.53">resource hundred happy then link into our education binary</r>
<r t="724.53">that's done using the tool called</r>
<r t="727.65">gina compile resources and do the proper resources takes</r>
<r t="731.37">it's input like we tell it what actually to compile into that resource bundle by</r>
<r t="736.61">but in this little excellence that up there</r>
<r t="739.75">and i'm not gonna get too much into it if you want to really look</r>
<r t="742.68">into that you can check out examples</r>
<r t="745.6">in the repository that's all hooked up with the makefile you can see actually running</r>
<r t="750.48">looking let me switch back to actually running this example now</r>
<r t="755.03">so we are stop to</r>
<r t="758.4">and i'm running it again</r>
<r t="761.36">but</r>
<r t="762.63">as you can see the windows not entirely empty at this point you have</r>
<r t="766.05">obviously we have the window title and if you if you look at the top</r>
<r t="769.82">of them and you can kind of see the and you had about their which</r>
<r t="774.44">it's not really prominent of the that's gonna get populated in the next steps</r>
<r t="778.89">well no this is just basis for the work</r>
<r t="787.45">okay so that's me is</r>
<r t="789.85">we want to actually populate the speculated that we put in place an ultimate upon</r>
<r t="795.35">that out and we want to</r>
<r t="798.23">i to act what you know if you can are already passed financial the command</r>
<r t="801.5">line so the next have a step we actually want to open these files and</r>
<r t="805.01">children</r>
<r t="806.81">for that</r>
<r t="810.27">because if you know features that want to mention</r>
<r t="814.92">all example brno class now case a private start</r>
<r t="820.23">you can see to find out there that contains just one on i'm not currently</r>
<r t="824.8">this stack pointer there</r>
<r t="827.97">and there's a new way actually just change recently you the way it used to</r>
<r t="831.53">be for private starts that you use to call</r>
<r t="834.7">G type class at try that in your class in a function and we turned</r>
<r t="840.02">that around to cycle and we actually made that more declarative so now the new</r>
<r t="844.21">way of doing this is that you use G define typhus private and that that's</r>
<r t="848.57">automatically on seems</r>
<r t="850.29">we don't have to do anything anymore in your class function for this</r>
<r t="854.41">and it is that you can do something else in your class in a function</r>
<r t="856.97">which is</r>
<r t="858.09">well you can use</r>
<r t="860.5">this somewhat magic thing here called G T K widget last</r>
<r t="864.32">find template right private that's quite a most well i think that's the content of</r>
<r t="867.46">a long as function name and G T K</r>
<r t="872.12">i couldn't really how it need to be that long to fit all the naming</r>
<r t="875.74">patterns and everything else so what does this do</r>
<r t="879.3">just for the should things behind the scene so we give it the example happened</r>
<r t="883.38">or name</r>
<r t="885.11">and we give it a name of variables that there and</r>
<r t="888.81">what's happening behind the scene is that this instructs you to create a</r>
<r t="894.26">because to use the private various function it knows that it actually is supposed to</r>
<r t="898.42">look in the private struck that's also associated press example happen all so example up</r>
<r t="902.81">in the private</r>
<r t="904.25">and</r>
<r t="905.39">should look for this stack member in it</r>
<r t="908.1">and it showed populate definitely</r>
<r t="911.26">that which it from the template that escorts that</r>
<r t="914.88">so this is one of the magic not at actual this that when we get</r>
<r t="917.93">to a instance and it function we can rely on the fact that the</r>
<r t="921.55">the staff member in our private structures is pointing to the better that we want</r>
<r t="925.11">to point to</r>
<r t="926.31">so there's not a lot of hassle manually look and also</r>
<r t="933.13">i don't know that's a question from under</r>
<r t="938.77">okay so this was just preparatory work for actually</r>
<r t="944.39">doing some actual logic here i'm not gonna explain this in detail</r>
<r t="948.26">this is the code to create a store dwindle great attacks to inside it and</r>
<r t="953.19">open the file that was passed as an argument</r>
<r t="956.18">and populate the text to with the contents of that file</r>
<r t="959.47">one thing that's worth pointing out us some venom at all this a line the</r>
<r t="963.76">record it a stack at titled</r>
<r t="966.14">that is very actually at the</r>
<r t="968.44">this more brno S A H in our state so to speak</r>
<r t="972.98">and</r>
<r t="974.01">we give it very unique identifier for that we just use the basin of the</r>
<r t="977.69">file and then there's another argument which is</r>
<r t="981.62">did a display title to actually show in the you know i will see that</r>
<r t="985.7">the be obvious one so run it</r>
<r t="989.44">and the other one thing i want to say about that is that the display</r>
<r t="994.18">type is obviously going to be displayed but this text which i would just the</r>
<r t="997.35">rolls of caps</r>
<r t="999.12">but we don't have to touch this text which at all you because</r>
<r t="1002.19">this text which are just getting all this data needs to know how many types</r>
<r t="1006.11">display able to show and then by looking at the at the stack that is</r>
<r t="1010.34">associated with</r>
<r t="1018.96">so the problem</r>
<r t="1021.77">so i'm switching back to running as well</r>
<r t="1026.46">well that's magic now we actually have contended it looks like a real application of</r>
<r t="1029.7">so let me make is a little bit and actually given files</r>
<r t="1047.49">i don't know that's a question for the design as i think i mean i</r>
<r t="1050.43">think about available for this case</r>
<r t="1052.76">and</r>
<r t="1054.72">i would i'm sure the designers would do time we often find something wrong about</r>
<r t="1059.56">it works so</r>
<r t="1062.5">good things to say it is that you see this text which are now that's</r>
<r t="1066.22">the like the two buttons updated</r>
<r t="1068.57">those get created but it's text which are</r>
<r t="1071.45">and you know the</r>
<r t="1073.92">the content of the file at U C obviously council</r>
<r t="1077.16">from the function i just showed you and we can</r>
<r t="1080.92">actually switch between them and it works so that that's you can stack and you</r>
<r t="1083.9">can stick switcher</r>
<r t="1085.42">connection</r>
<r t="1093.79">i just keep moving on is this questions feel free to interrupt me at any</r>
<r t="1097.79">time</r>
<r t="1099.02">next this we want to resolve a little more that an application menu i don't</r>
<r t="1102.58">need to say too much evolved modification men us and how it works</r>
<r t="1106.38">well dive right into how you do this</r>
<r t="1110.88">and also get specified by educator that you iphone</r>
<r t="1114.86">like this one here</r>
<r t="1117.3">and i don't think i should say too much and details about the syntax you</r>
<r t="1121.45">can see that we actually created menu element which is a menu not surprisingly and</r>
<r t="1126.42">they can be sections in there</r>
<r t="1128.49">and items and the items have</r>
<r t="1131.69">a couple of at a good see a we set a label which is what's</r>
<r t="1134.59">gonna going to shop in the U I</r>
<r t="1137.38">and then we have an action for each item</r>
<r t="1140.25">which is what's going to get activated and you have to check on that menu</r>
<r t="1143.36">item</r>
<r t="1145.72">and actually used is you i for an obligation we need to call G T</r>
<r t="1151.66">K application setup menu</r>
<r t="1154.99">and a good place to do that is in the startup before</r>
<r t="1159.03">of your energy application</r>
<r t="1161.25">i mentioned earlier that you application as a number of different entry points like it</r>
<r t="1164.62">has an active right does it open or you could activated by directly calling in</r>
<r t="1168.71">action</r>
<r t="1169.99">and how you activated how you started there's always a startup different that it gets</r>
<r t="1175.96">caught no matter what</r>
<r t="1177.55">so that's a good place to do things that you want to happen in all</r>
<r t="1180.49">the cases</r>
<r t="1181.84">because if you have to actually</r>
<r t="1184.26">get a lot</r>
<r t="1186.21">you are funded i just so</r>
<r t="1188.47">and then we</r>
<r t="1190.31">well you get the menu model</r>
<r t="1192.01">that the data constructed format and we called you get jic application setup menu</r>
<r t="1197.68">which does all the work behind the scenes just this puts us stuff on the</r>
<r t="1201.81">bus on the session but also the show picks it up from there so that's</r>
<r t="1204.16">a lot of things that are happening behind the scenes of that's right</r>
<r t="1212.07">right i did not really get into the difference between finer primary and secondary instance</r>
<r t="1216.32">but you're so right points out that G application as this concept of single instance</r>
<r t="1221.6">which are briefly mentioned earlier and that means there's a primary instance which is actually</r>
<r t="1227.05">fourty flash running application and if you start again on the command line it's not</r>
<r t="1232.14">gonna open set second binary but just</r>
<r t="1234.54">talk to the primary instance</r>
<r t="1236.73">and the startup function i said it gets run no matter what it only gets</r>
<r t="1240.54">run in the province but if you're if you're starting at or second time and</r>
<r t="1243.81">doesn't actually launch something them started with not</r>
<r t="1251.05">okay that's a fair point</r>
<r t="1254.86">going back to this i said earlier in a financial to you have a if</r>
<r t="1258.4">you to be mention applications like each item as an associated action</r>
<r t="1262.42">and so we need to somehow bring these actions into</r>
<r t="1265.97">into being and that's what what's happening actually four lines up here</r>
<r t="1270.41">we call a function called G action map at actually entries</r>
<r t="1275.19">which is</r>
<r t="1277.27">also a lot of work that's happening by the scenes that school of a little</r>
<r t="1280.31">bit</r>
<r t="1281.04">you can actually see the add entries irate if you pass in there</r>
<r t="1285.32">this looks very similar to what we what we have and how to indicate for</r>
<r t="1288.74">the longest time which is a G T K action entry every</r>
<r t="1293.1">and this is just basically the same kind of idea translated into G action sort</r>
<r t="1298.94">of detection</r>
<r t="1301.08">so we are creating to actions one is as the name preferences minus on this</r>
<r t="1304.96">and it could</r>
<r t="1306.19">just a student to do that you saw the U I five before</r>
<r t="1309.37">and we have you be also specify the activate callbacks you like could activated it's</r>
<r t="1314.67">called in the collection is activated preferences activated escort</r>
<r t="1318.89">when preferences you preference actions activated</r>
<r t="1323.18">that's actually try that out</r>
<r t="1327.66">so not to step for</r>
<r t="1332.74">that you have to have an</r>
<r t="1334.81">vision and you know yes it's there so the shell has successfully picked up</r>
<r t="1340.17">menu the other people on the bus</r>
<r t="1342.71">and that S which it shows of the preferences and could menu item</r>
<r t="1347.4">no one click on preferences</r>
<r t="1350.64">nothing happens that's because the preferences activity function that i just is percent these of</r>
<r t="1354.41">us nothing</r>
<r t="1356.64">exciting is going on but it is fully functional</r>
<r t="1360.9">just works and a little bit want to show that</r>
<r t="1364.49">you may not more may not what is it but for the for the could</r>
<r t="1367.67">i don't actually specified a keyboard accelerator people talk out in the U I for</r>
<r t="1373.74">the expected one controlled you</r>
<r t="1375.77">and when i had control to here</r>
<r t="1377.63">also works or that is already hooked up</r>
<r t="1381.49">and the next that will be to make the preferences menu item actually something</r>
<r t="1386.89">well that i'm moving on to the next step</r>
<r t="1390.55">which is</r>
<r t="1392.09">soon so how preferences work</r>
<r t="1394.92">and</r>
<r t="1397.58">we want our preferences obviously to be remembered from one run of the application for</r>
<r t="1401.49">the next are we gonna use G settings to number them</r>
<r t="1405.92">and for using G settings the first step is always to that you need a</r>
<r t="1410.5">schema for a settings</r>
<r t="1412.51">which is another type of X M L file actually here</r>
<r t="1415.45">is fairly minimal scheme are just system to settings and it the one is</r>
<r t="1419.78">a font the unless a transition time</r>
<r t="1425.55">there's some magic that you need to do some magic intent incantations that you need</r>
<r t="1429.61">to do to make it make use of the scheme or you have to compile</r>
<r t="1433.27">it but you have to like</r>
<r t="1435.12">installed icexml from the right location and then you call gina comply schemas to</r>
<r t="1441.25">it's gotta be have some autoconf</r>
<r t="1444.65">macros to make that</r>
<r t="1446.46">the little easier if you're using all the tools</r>
<r t="1449.16">so i'm not gonna dive into the details of how to do that let's just</r>
<r t="1451.69">assume</r>
<r t="1452.91">that we can figure that out</r>
<r t="1455.89">and so now we have a disk in that case</r>
<r t="1459.67">which means you can actually now use our settings and for that</r>
<r t="1464.96">we need to quality settings new to obtain an instance of our settings</r>
<r t="1469.36">object</r>
<r t="1471.13">and</r>
<r t="1473.1">the next thing we do is we use a very convenient functionality of T settings</r>
<r t="1476.91">which is finding</r>
<r t="1478.5">so we have this settings here actually earlier which is about the other which was</r>
<r t="1483.27">called transition</r>
<r t="1484.96">and we just find that too</r>
<r t="1487.09">remember pressed accuracy</r>
<r t="1489.81">it's a pointer that points to the do you can stack which is that we</r>
<r t="1494.54">have in our window somewhere</r>
<r t="1497.48">and the do you can stack it's a property that's called transition type</r>
<r t="1502.47">and i would just by deciding to the</r>
<r t="1504.75">to the property</r>
<r t="1506.5">and that's all we need to do to make the reject reactor the changes of</r>
<r t="1510.5">the setting</r>
<r t="1518.74">there's some educated and i'm not gonna get into right now</r>
<r t="1522.09">it's even better than</r>
<r t="1523.36">then i'm telling</r>
<r t="1524.71">so let's</r>
<r t="1530.36">let's see if i can actually because</r>
<r t="1533.89">so remember we don't have a preference dialogue get that we have hooked up to</r>
<r t="1537.25">setting service</r>
<r t="1538.83">going to see and if i can actually</r>
<r t="1542.87">prove to you that if i don't change the settings</r>
<r t="1546.17">on the command line using the G settings commitment to</r>
<r t="1551.79">i hope that something is</r>
<r t="1553.24">as i mean i was gonna less impressive that wanted because the window was hidden</r>
<r t="1556.36">but you can see that the</r>
<r t="1558.13">the application actually picked up my phone so strange before was one space to open</r>
<r t="1562.75">autumn especially</r>
<r t="1565.25">but obviously using the command line for these kind of changes it's not ideal so</r>
<r t="1568.53">we want to</r>
<r t="1569.97">a preference dialogue so that that's move on and constructive</r>
<r t="1577.57">obviously be we use all the same things that we've already used to be again</r>
<r t="1581.5">right attempted five for this dialogue this time it's a</r>
<r t="1585.98">it's a subclass of you could dialogue can see appear</r>
<r t="1589.06">and i'm not gonna go to listen detail but you can see that we populated</r>
<r t="1592.76">that they</r>
<r t="1594.21">some labels and the data from that they're gonna use for the phone probably obviously</r>
<r t="1599.32">and the little further down</r>
<r t="1602.57">is a combo box that using for the this transition property which is three possible</r>
<r t="1606.73">values</r>
<r t="1608.02">and i'm specifying them right in the in the template</r>
<r t="1616.13">and then</r>
<r t="1619.34">you obviously a great a subclass of ticket dialogue for this</r>
<r t="1622.74">using the standard</r>
<r t="1624.18">so there's all the same one i played and i showed you for our occasional</r>
<r t="1628.71">you find type of private that business</r>
<r t="1631.88">and we do the same tended finding that we did for vacation and when this</r>
<r t="1637.73">time you do it for a preference dialogue</r>
<r t="1641.01">we again obtain an instance of our settings you</r>
<r t="1645.09">percent X</r>
<r t="1647.07">and again we use the settings finding functionality combine</r>
<r t="1651.9">or settings this time to bite into the controls we have in the dialogue actually</r>
<r t="1657.05">the changing</r>
<r t="1658.28">so for the for the font setting the use the</r>
<r t="1661.24">the functional</r>
<r t="1663.91">and for the position settings use this combo box</r>
<r t="1667.35">i didn't actually pointed out that the name of that budget in the time that</r>
<r t="1670.96">five was position</r>
<r t="1674.33">and</r>
<r t="1676.9">there's a lot more part of it here</r>
<r t="1679.32">on think we still have to do is</r>
<r t="1681.89">we created this preferences activated callback for the action but it was empty so we</r>
<r t="1685.98">know need to go back to it and</r>
<r t="1688.08">make it actually created you instance of a preference dialogue and present that</r>
<r t="1696.5">and</r>
<r t="1697.87">so let's go back and see how that looks</r>
<r t="1710.43">you can see of all font settings change from last one got remembered across to</r>
<r t="1715.15">be stuff</r>
<r t="1716.37">and</r>
<r t="1717.52">no tricking preferences again and a test our preference that'll and it has the things</r>
<r t="1722.06">that i pointed out earlier in the that so there's a one choose a</r>
<r t="1726.73">chose the value that we just sat in the on the command line</r>
<r t="1730.01">and that's the combo box for the transition</r>
<r t="1733.28">just gonna briefly pause and show what it actually does</r>
<r t="1737.47">change the slide</r>
<r t="1739.95">and if i know change taps here</r>
<r t="1743.15">actually any mates so this is a new feature indicates that</r>
<r t="1746.76">as opposed to the old do you can notebook</r>
<r t="1749.74">you can actually do nice animated transitions here the other one that i have it</r>
<r t="1753.38">here in the preference dialogue i'm gonna show that as well as the cross fade</r>
<r t="1758.47">so for change to that then</r>
<r t="1760.83">you can kind of see the cross fade happening here</r>
<r t="1763.74">so that's a nice new feature of you can stack which is made possible by</r>
<r t="1767.98">all the frame based drawing like that owned it the last year</r>
<r t="1775.89">okay well known</r>
<r t="1779.69">this application starting to look like an application that's fairly minimal so will add a</r>
<r t="1783.78">few more bits of functionality here</r>
<r t="1786.17">the next that is very common and don't see application research that's obviously very central</r>
<r t="1790.71">so i want to show how to make be</r>
<r t="1794.39">research entry here that looks somewhat similar to what we have another one applications</r>
<r t="1799.79">product we the use do you can search entry which is just a subclass of</r>
<r t="1804.54">do you can feel it has a bit of extra functionality</r>
<r t="1808.45">to make a certain like basically a button and it has see extra signal that</r>
<r t="1811.87">kind of patches the changes things like that and then we used to do concerts</r>
<r t="1815.83">but i would just and you a budget</r>
<r t="1818.15">which lets you</r>
<r t="1820.19">place such country and maybe some other divided you might need and content in relation</r>
<r t="1824.6">to that</r>
<r t="1825.54">in inside a</r>
<r t="1827.78">toolbar model stick and slide in from the top</r>
<r t="1831.59">let's see how we actually use those</r>
<r t="1835.53">so they go back to our</r>
<r t="1838.37">have that for application than or</r>
<r t="1840.54">and the and if you extra things</r>
<r t="1844.4">right we had a probable so they had a bar</r>
<r t="1848.5">the be much easier to see that men i run the application and i'm just</r>
<r t="1850.98">pointing out how this looks and they</r>
<r t="1852.95">covered</r>
<r t="1856.01">and</r>
<r t="1858.17">no further down</r>
<r t="1860.57">between the had about the stack you know put a search by</r>
<r t="1864.26">the search but contains a search entry</r>
<r t="1867.35">and</r>
<r t="1868.42">what we also do here is</r>
<r t="1870.78">we hook up this segment of for the search changed signal of the searching for</r>
<r t="1874.65">you might you know that have that right so we don't have too many legal</r>
<r t="1877.5">ninety six not connect to know</r>
<r t="1879.79">so once again this reduces</r>
<r t="1882.48">the amount of menu cool to have to be produced</r>
<r t="1886.42">and obviously implementing search actually takes quite a bit of work i'm not gonna go</r>
<r t="1891.12">to that in detail here but i just wanted to</r>
<r t="1894.3">if you show that there see the main did to be for this work us</r>
<r t="1898.17">having a second like he has touched exchange which gets called</r>
<r t="1903.28">whenever you talk a new character in your surgery</r>
<r t="1907.04">and then we would do magic was text you just to find the first match</r>
<r t="1910.96">for that you know text</r>
<r t="1912.96">and</r>
<r t="1914.07">one vector</r>
<r t="1916.63">like a couple again</r>
<r t="1922.18">so it is well you can see the</r>
<r t="1925.4">there's of like on is that all the button that i mentioned</r>
<r t="1928.58">if i click that's</r>
<r t="1932.14">so sparse lights in the such entry</r>
<r t="1935.57">and i can type something like</r>
<r t="1941.41">so just</r>
<r t="1942.54">that's kinda need</r>
<r t="1946.96">escape i think</r>
<r t="1949.41">okay</r>
<r t="1951.58">so</r>
<r t="1953.31">that's already pretty good</r>
<r t="1956.32">but you can at the present a little more functionality you before but i'm not</r>
<r t="1959.66">so</r>
<r t="1961.64">think it's a step eight of nine so i might actually gets too much steps</r>
<r t="1964.51">supposed to learn that</r>
<r t="1967.9">sidebar</r>
<r t="1970.51">i really have to like wracked my brain to come up is some example that</r>
<r t="1975.21">lets me put in as many of the new but just as possible so i</r>
<r t="1978.73">cannot this let me let me know that that's totally ridiculous but at least it</r>
<r t="1983.11">gets the don't drop down definitional do you can menu button did you can reveal</r>
<r t="1987.22">and you can just box set</r>
<r t="1990.41">so once again we</r>
<r t="1992.54">go back into our tempted</r>
<r t="1994.74">and we are just sort you that we added top to bottom</r>
<r t="1998.61">we know at a menu button next to that that's down here you can menu</r>
<r t="2002.22">button</r>
<r t="2006.01">and then going for the down</r>
<r t="2008.72">and maybe used to have the G T K stack</r>
<r t="2011.33">we know</r>
<r t="2012.77">wrap that inside you get box and</r>
<r t="2015.68">put a</r>
<r t="2017.07">a little extra</r>
<r t="2018.59">before it is actually i was audible so we put something left</r>
<r t="2022.25">which is a G T K with you know that contains a list box in</r>
<r t="2025.92">the school window</r>
<r t="2029.13">and</r>
<r t="2032.83">it's a little more xml here to show</r>
<r t="2036.02">i said that i put a menu button there i didn't actually tell you where</r>
<r t="2039.11">the menus coming from that's yet another</r>
<r t="2042.02">the U I for that actually here</r>
<r t="2044.51">which is really virtually identical to the syntax of the one that i showed you</r>
<r t="2049.32">polyak menu it's just another</r>
<r t="2051.34">you i five to be find a gym anymore</r>
<r t="2054.79">in this case i just put a single item in there right now</r>
<r t="2058.27">just a label words and they know the action here words</r>
<r t="2063.64">and obviously i need to tell you where that actually comes from</r>
<r t="2067.25">so we go back to this is actually to go back you can</r>
<r t="2072.48">i so i called action show works but actually the U I five says when</r>
<r t="2076.02">dot show words</r>
<r t="2078.01">the window hottest this goebbels the action so the actions we saw before for the</r>
<r t="2082.74">application manoeuvre applications goal actions which we defined in</r>
<r t="2087.69">in the startup function of the application</r>
<r t="2090.67">but there can also be we know school actions</r>
<r t="2093.98">and the can i mention here is that you refer to those by putting went</r>
<r t="2097.84">off as the prefix the name</r>
<r t="2100.64">and obviously in brno school action should not be defined in the G application startup</r>
<r t="2105.13">function but it should be specific to the rental so we at that action in</r>
<r t="2109.62">the in the function of our example than a class</r>
<r t="2113.47">and the last three lines that actually but it happens</r>
<r t="2117.94">in this case we use a settings actually</r>
<r t="2122">which is a neat little this integrate to take one of audio settings</r>
<r t="2127.85">in this case it's setting called sure words and just wrap actually and actually wanted</r>
<r t="2133.99">and</r>
<r t="2135.96">activating the action will have that we change the value of the setting</r>
<r t="2140.17">this case the setting this is leon and</r>
<r t="2145.1">the settings action who just probably and every time you activated</r>
<r t="2149.35">that's a very convenient way to make settings available to the you live in the</r>
<r t="2153.26">form of actions</r>
<r t="2156.37">and but that i'm switching back to show you know that looks</r>
<r t="2166.22">okay so</r>
<r t="2168.36">next a lot of the button up there</r>
<r t="2170.92">is to get something you know</r>
<r t="2173.45">menu button</r>
<r t="2175.15">click connect</r>
<r t="2176.61">is the menu item that i just</r>
<r t="2178.53">mystified</r>
<r t="2179.78">and if i actually</r>
<r t="2181.65">product</r>
<r t="2183.79">decide partials up and you saw that it actually slides and that's what the really</r>
<r t="2187.59">knows doing it cannot that's the animated</r>
<r t="2190.19">reveal</r>
<r t="2191.64">and inside they really lazy</r>
<r t="2195.03">in this box here this block so i could can spend an entire talked us</r>
<r t="2198.59">talking about do you can this box and what that's about it doesn't do but</r>
<r t="2202.24">it is essentially it's just a container that is</r>
<r t="2205.41">it's meant to contain lots of digits and it has</r>
<r t="2208.62">functionality that you normally associate with the but that review like it can filter can</r>
<r t="2213.32">consult the items that are contained in it</r>
<r t="2216.45">but the to the defining difference between this and the triggers that</r>
<r t="2221.53">it shows actually is that which it it's not a seven day which is kind</r>
<r t="2225.48">of a different layout model so this is nice if you want to have a</r>
<r t="2228.6">list</r>
<r t="2229.61">but you want to have actual july and it's not necessarily just data-driven</r>
<r t="2234.73">giant data is</r>
<r t="2236.22">and since i have to come up to something for this example adjust</r>
<r t="2239.64">created buttons one button for each button my text and if i click on one</r>
<r t="2243.9">of those buttons</r>
<r t="2245.86">research again so this december</r>
<r t="2248.84">make this example but meaningful</r>
<r t="2257.47">right</r>
<r t="2260.02">and i just saw the movie to hide itself again</r>
<r t="2263.15">so we don't</r>
<r t="2266.11">almost and this is the last step</r>
<r t="2268.04">but i've been about them of this like first it had only it's that's actually</r>
<r t="2271.99">and then ryan came back to me and said okay just reason like probably actions</r>
<r t="2277.6">because that's need to so i went back and i racked my brain a little</r>
<r t="2281.16">more and try to come up with some way of showing property actions</r>
<r t="2285.83">so what what's that about</r>
<r t="2289.26">which is all and a topic so if you have lots of useful properties and</r>
<r t="2293.12">it's a it's a said earlier these settings action but it just showed it's a</r>
<r t="2296.44">very convenient way to make settings accessible to do you want to from corrections</r>
<r t="2301.97">and there similarly G property action does the same thing for properties of widget object</r>
<r t="2309.45">and</r>
<r t="2310.9">we'll see how that works</r>
<r t="2313.46">so i'm not going in all the details here but just explaining what what's happening</r>
<r t="2318.02">here we have seen to have to go back to our camp that again and</r>
<r t="2321.01">be i'm adding a two labels</r>
<r t="2323.88">pulled out of our</r>
<r t="2325.49">the names are lines label lines actually get again just talk about it and then</r>
<r t="2332.52">we go to our</r>
<r t="2334.39">the U I for it defines the geeky a menu</r>
<r t="2337.57">and be out at the second item there</r>
<r t="2340.67">the name lines and</r>
<r t="2342.34">but they are the new action show lines</r>
<r t="2345.71">which now would be a property action</r>
<r t="2348.05">so i have to show you know that is done</r>
<r t="2351.1">and again it's done in the in a function of all in the class and</r>
<r t="2355.53">it is the first line there's</r>
<r t="2357.55">G property actually you so we specify the name show lines and then we</r>
<r t="2363.1">we use the lines object</r>
<r t="2364.99">and you probably expect by now that pretty lines is another</r>
<r t="2369.69">point a very banal prime instructed gets magically populated finally</r>
<r t="2374.29">gee wouldn't you can window class pine temperature a lot well</r>
<r t="2378.71">so that's for that one little that we just added</r>
<r t="2382.13">and use the visible property of the label and we have another boolean target actually</r>
<r t="2387.22">here</r>
<r t="2388.58">and</r>
<r t="2390.53">yet another thing that i squeezed in this last that is that</r>
<r t="2394.57">but only can be do that but we can also</r>
<r t="2398.5">use</r>
<r t="2399.64">object binding here logistic in a nice way to basically connect properties of different objects</r>
<r t="2405.69">and keep them and so</r>
<r t="2407.54">so that's what we're using here to assess at the at to labels but we</r>
<r t="2410.39">always want them to become visible invisible together so we can adjust we use do</r>
<r t="2416">you object buying property to just connect the visible property of these two widgets</r>
<r t="2421.37">so when i when i show the first one the second one automatically get shown</r>
<r t="2424.84">as well</r>
<r t="2429.27">let me show you look something about it yes</r>
<r t="2454.2">okay so</r>
<r t="2456.47">rest of them here's our new menu item lines i just quit that</r>
<r t="2460.89">metropolis</r>
<r t="2462.5">to label simply here</r>
<r t="2464.71">and show you the code for actually counting the lines the text</r>
<r t="2467.98">as well that that's interesting to taps</r>
<r t="2471.7">it actually a baseline count you</r>
<r t="2474.36">and if i top and the property again</r>
<r t="2478.1">most of them disappeared the same time because that was the properties are all together</r>
<r t="2484.85">and</r>
<r t="2486.71">that was the last step so i'm actually</r>
<r t="2490.19">and on the my samples</r>
<r t="2492.06">i'll be and what that and if you have any questions free to ask</r>
<r t="2495.39">thanks to take a break from this i hope are but it's actually really not</r>
<r t="2500.23">hard automatic norm three style vacation using</r>
<r t="2503.52">bits and pieces that are available in typically master now so it's tickets we can</r>
<r t="2507.87">all of this would be</r>
<r t="2509.44">would be at your disposal and</r>
<r t="2512.29">actually did a line count you on the last step you that most complete example</r>
<r t="2516.98">that i have comes onto some five hundred lines of C code and some two</r>
<r t="2520.73">hundred lines of you across</r>
<r t="2523.4">so that's not too bad considering it see</r>
<r t="2529.36">no i that i used to be a for this</r>
<r t="2533.8">but i hope late what we have to it as well that's just</r>
<r t="2538.24">yes</r>
<r t="2546.43">can repeat the question mark</r>
<r t="2550.92">okay</r>
<r t="2551.85">yes this first of all as i said earlier these examples including all the makefile</r>
<r t="2558.94">integration everything is available the G T K source tree so you can go then</r>
<r t="2562.38">local actually that this that's make for the yams</r>
<r t="2566.15">there's also a various documentation for instance the i pointed out at some point is</r>
<r t="2571.96">that we should some macros in G I L actually for the for the schema</r>
<r t="2575.47">compilation part and there's a link that's of the G I O documentation but that's</r>
<r t="2579.26">explain</r>
<r t="2580.54">and</r>
<r t="2581.59">maybe have documentation for some for the resource part of so an actual about that</r>
<r t="2587.78">okay so some of this might not be wrapped a nice macros</r>
<r t="2591.85">but some of it is and for the parts that are there should be documentation</r>
<r t="2595.87">somewhere inside the G I O documentation but that's not necessarily easy to find so</r>
<r t="2600.98">i try to put links to that in this</r>
<r t="2609.39">right that's a that's a good exactly actually</r>
<r t="2613.29">so there's a there's a nice you way of writing documentation hold how do i</r>
<r t="2617.97">that wind kicked off and this drumming</r>
<r t="2620.99">drumming for which</r>
<r t="2624.14">that that's available i think it's a one about resources maybe not yet but</r>
<r t="2628.48">we should make one available</r>
<r t="2635.04">so there's more questions or nothing i want to say is that this is the</r>
<r t="2639.25">location where you can actually find all of all of this online this is the</r>
<r t="2643.16">D A P I documentation where</r>
<r t="2645.58">that i just wanted to other point out that i found a few box and</r>
<r t="2649.77">in the documentation gonna bend over this last night so but i showed you was</r>
<r t="2653.19">my local fixed build and that will be all our online but the next you</r>
<r t="2658.36">can release</r>
<r t="2659.57">and this is a the G T K sources and you can see the night</r>
<r t="2663.65">subdirectories where i ran</r>
<r t="2665.77">these examples</r>
<r t="2671.45">thank you next time</r>
<r t="2676.98">and questions</r>
<r t="2679.69">okay thank you</r>
</data>
