index.hu.html 152 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169
  1. <!DOCTYPE html>
  2. <html lang="hu">
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="generator" content="gendoc 1.0.0: https://gitlab.com/bztsrc/gendoc">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Státusz-Módú GUI</title>
  8. <style rel="logic">*{box-sizing:border-box;font-family:inherit;}body {background:rgba(0,0,0,0.05);font-weight:400;font-size:16px;}hr{display:block;height:1px;border:0;border-top:1px solid #e1e4e5;margin:26px 0;padding:0;border-top:1px solid;}br:after,br:before{display:table;content:""}br{clear:both;}h1,h2,h3,h4,h5,h6{clear:both;margin:0px 0px 20px 0px;padding-top:4px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}p{margin:0 0 24px}a{cursor:pointer;}h1{font-size:175%}h2{font-size:150%}h3{font-size:125%}h4{font-size:115%}h5{font-size:110%}h6{font-size:100%}pre,samp,code,var,kbd{font-family:Monaco,Consolas,Liberation Mono,Courier,monospace;font-variant-ligatures:none;}pre,code{display:block;overflow:auto;white-space:pre;font-size:14px;line-height:16px!important;}pre{padding:12px;margin:0px;}code{padding:0 0 12px 0;margin:12px 12px 0px 2px;background:url(data:type/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAgCAYAAADT5RIaAAAAFklEQVQI12NgYGDgZWJgYGCgDkFtAAAWnAAsyj4TxgAAAABJRU5ErkJggg==) 0 0 repeat;}.lineno{display:block;padding:0px 4px 0px 4px;margin:12px 0px 0px 0px;opacity:.4;text-align:right;float:left;white-space:pre;font-size:12px;line-height:16px!important;}pre .hl_b,samp .hl_b,code .hl_b{display:block;}blockquote{margin:0px;padding:12px;}blockquote>span:first-child::before{content:url(data:type/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAgCAYAAABU1PscAAABRElEQVRYw+3WTytEURjH8c/4l1JTpKxsyEbYWFkpG+UVKOWFeAts7eytbJSysLLVxIKNFAslwhSlUQabUdM0xm0e967Ot+7inPN8z+13z73nXBKJRCIRoJSxbggrmMMInlHBIWoF+KEAQ9jAaJuxe2zhJUe/Iz0ZahZ/uTmMYT1nPxxg/I/xWQzn6IcD1IIha//wkEIBKhlq+nP0wwHOsYuvDjWvOfod6c1Yd9O4ZjDQZvwAbzn6oRVofpKbqLf0P+GxAD8cAO7w0NJ3WqAfDlBCuan9gaMC/XCA+cbJ+sMRqgX6oQCTWGtqX2O/QL8tfRlqyljGUlPgW2y3+SDz8Lv6mRvEQmPbm25ZqQvs/LHtRf3wCkxgtaWvij2cZJg36ocD/Pw91nGJY5zhM+O8UT/8Ck01TswrvHcxb9RPJBKJRDF8AyNbWk4WFTIzAAAAAElFTkSuQmCC);float:left;vertical-align:top;}.ui1,.ui2,.ui3,.ui4,.ui5,.ui6{display:inline-block;height:24px!important;line-height:24px!important;padding:0px 4px;margin:-2px 0px -2px;}kbd{display:inline-block;font-weight:700;border:1px solid #888;height:24px!important;padding:0px 4px;margin:-2px 0px -2px;border-radius:4px;background-image:linear-gradient(#ddd 0%,#eee 10%,#bbb 10%,#ccc 30%,#fff 85%,#eee 85%,#888 100%);}.mouseleft,.mouseright,.mousewheel{display:inline-block;min-width:16px;height:24px!important;padding:0px;margin:-2px 0px 0px 0px;vertical-align:middle;}.mouseleft::before{content:url(data:type/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAYCAMAAADEfo0+AAAAe1BMVEUAAACoqKj9/f2zs7O1tbWRkZGlpaWsrKybm5u2traNjY2Wlpanp6empqaYmJiPj4+3t7f5+fmjo6P19fXu7u6ZmZnx8fHi4uLm5ube3t7q6uqwsLC0tLS7u7u4uLi/v7/W1tbDw8PLy8vPz8/T09Pa2trHx8eIiIhERkShhqFGAAAAAXRSTlMAQObYZgAAAI5JREFUGNNV0EcCwjAMRFEB6R2DKSGQUBLp/idEjsG23m7+cgAMIsJWwR8Z235pumDTnkUbv+lg7CIfTqvSbTquxsGFfjWXLlwsdOFs+XC1EHAWOEwCh4/A4S1weAkcFoHDU0CI8zGQx1Cpe0BVAO0j0PIfiR4cnZjLdHP7abQ9VRVZnaZ1VvjfO42o7edfH3EoHZS6XE4AAAAASUVORK5CYII=);}.mouseright::before{content:url(data:type/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAYCAMAAADEfo0+AAAAe1BMVEUAAACoqKj9/f2zs7O1tbWRkZGlpaWsrKybm5u2traNjY2Wlpanp6empqaYmJiPj4+3t7f5+fmjo6P19fXu7u6ZmZnx8fHi4uLm5ube3t7q6uqwsLC0tLS7u7u4uLi/v7/W1tbDw8PLy8vPz8/T09Pa2trHx8eIiIhERkShhqFGAAAAAXRSTlMAQObYZgAAAI9JREFUGNNV0NkWgjAMRdGozFOxWgdEcYLk/7/Q0EpL9tNd5/ECzLRCIoJF20zdlsinTbRn5Eu0O8zIl/Jk+dAPR4uWUo6d5QNenBDOTghXJ4RRQMCnwOErcPgIHN4Ch0ng8BIQ4nxYyWOo9H1FVwDqsaL4j8T0nknmy0xz+2uMO1UXWZ2mdVbo8LtBNK2dP/2+KB2shyfVAAAAAElFTkSuQmCC);}.mousewheel::before{content:url(data:type/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAYCAMAAADEfo0+AAAAe1BMVEUAAACzs7OoqKisrKyRkZGlpaX9/f22trabm5uNjY2mpqanp6ePj4+1tbWYmJi3t7eWlpajo6OZmZmwsLD5+fnu7u7x8fHi4uLW1tbm5ube3t7T09Pq6ur19fW4uLi7u7u0tLTa2trPz8+/v7/Dw8PLy8vHx8eIiIhERkS4354xAAAAAXRSTlMAQObYZgAAAKdJREFUGNNV0NkagiAUhdHjPAECzWWlWdL7P2Fno/nJumHzXx4iMMI5YeivVVOX592k2vkfy/1CxvjL6L6KJAd9ZF+GVxP144Eh4B170kPHEPAOmtwFEPxw5E6A4AeHKyD4wWEABD84nAHBDw43QPCDwyvA4RPgMAU4vAOO0mLcKFJqzHPDNETisSH4HpntVzbDyazaLZSdj2qqsk6Suqw2d7fO2fnmP7kAJW9a/HbiAAAAAElFTkSuQmCC);}footer{width:100%;padding:0 3.236em;}footer p{opacity:0.6;}footer small{opacity:0.5;}footer a{text-decoration:none;color:inherit;}footer a:hover{text-decoration:underline;}dl{margin:0 0 24px 0;padding:0px;}dt{font-weight:700;margin-bottom:12px;}dd{margin:0 0 12px 24px;}.table table{margin:0px;border-collapse:collapse;border-spacing:0;empty-cells:show;border:1px solid;width:100%;}th{font-weight:700;padding:8px 16px;overflow:visible;vertical-align:middle;white-space:nowrap;border:1px solid;}th.wide{width:100%;}td{padding:8px 16px;overflow:visible;vertical-align:middle;font-size:90%;border:1px solid;}td.right{text-align:right;}table.grid{margin:0px;padding:0px;border:none!important;background:none!important;border-spacing:0;border:0px!important;empty-cells:show;width:100%;}table.grid tr, table.grid td{margin:0px;padding:0px;overflow:hidden;vertical-align:top;background:none!important;border:0px!important;font-size:90%;}div.frame{position:absolute;width:100%;min-height:100%;margin:0px;padding:0px;max-width:1100px;top:0px;left:0px;}#_m{margin-left:300px;min-height:100%;}div.title{display:block;width:300px;padding-top:.809em;padding-bottom:.809em;margin-bottom:.809em;text-align:center;font-weight:700;}div.title>a{padding:4px 6px;margin-bottom:.809em;font-size:150%;}div.title>a:hover{background:transparent;}div.title>a>img{max-width:280px;border:0px;padding:0px;margin:0px;}div.title input{display:none;width:270px;border-radius:50px;padding:6px 12px;font-size:80%;box-shadow:inset 0 1px 3px #ddd;transition:border .3s linear;}div.title input:required:invalid{background:#fcfcfc url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAASFBMVEUAAAC6urq7u7y7vLy8vL3Dw8TLzM67urq8vL29vr69vr/AwMK5ubm5ubm4uLi5t7fAwMC/vr/FxMXBwsPExcW+u7vDw8S4uLiryZHFAAAAF3RSTlMA9vGttk4lfbWnpJQG0MpzYEIglFRCGzMa+EsAAAB0SURBVBjTbY5bCsMwDAQl2U6cR5s0fcz9b1oLpWBC52dhENqVRsmG5SIn60wwryEm0LQkbUacAveh5XGDh4uKfsQZlOqpJAkS5gHPUyzgYdeLjB6/H7lvGbzlssP2WDoRGGzxrVRD82sHRukZ/xhv7tns/QXrhgcaFdOKBwAAAABJRU5ErkJggg==) no-repeat 10px 50%;}div.title input:focus{background:#fcfcfc!important;}div.version{margin-top:.4045em;margin-bottom:.809em;font-size:90%;}nav.side {display:block;position:fixed;top:0;bottom:0;left:0;width:300px;overflow-x:hidden;overflow-y:hidden;min-height:100%;font-weight:400;z-index:999;}nav.mobile {display:none;font-weight:bold;padding:.4045em .809em;position:relative;line-height:50px;text-align:center;font-size:100%;*zoom:1;}nav a{color:inherit;text-decoration:none;display:block;}nav.side>div{position:relative;overflow-x:hidden;overflow-y:scroll;width:320px;height:100%;padding-bottom:64px;}div.nav p{height:32px;line-height:32px;padding:0 1.618em;margin:12px 0px 0px 0px;font-weight:700;text-transform:uppercase;font-size:85%;white-space:nowrap;-webkit-font-smoothing:antialiased}div.nav li>.current,div.nav li>ul{display:none;}div.nav li>a,div.nav li>label{display:block;}div.nav a,div.nav ul>li>label,div.nav ul>li>.current{width:300px;line-height:18px;padding:0.4045em 1.618em;}div.nav a,div.nav ul>li>label{cursor:pointer;}div.nav .current{font-weight:700;border-top:1px solid;border-bottom:1px solid #c9c9c9;}div.nav ul>li>ul>li>a{border-right:solid 1px #c9c9c9;font-size:90%;}div.nav ul>li>ul>li.h2>a{padding:0.4045em 2.427em;}div.nav ul>li>ul>li.h3>a{padding:.4045em 1.618em .4045em 4.045em;}div.nav ul>li>ul>li.h4>a{padding:.4045em 1.618em .4045em 5.663em;}div.nav ul>li>ul>li.h5>a{padding:.4045em 1.618em .4045em 7.281em;}div.nav ul>li>ul>li.h6>a{padding:.4045em 1.618em .4045em 8.899em;}div.nav ul,div.nav li,.breadcrumbs{margin:0px!important;padding:0px;list-style:none;}ul.breadcrumbs,.breadcrumbs li{display:inline-block;}.menu{display:inline-block;position:absolute;top:12px;right:20px;cursor:pointer;width:1.5em;height:1.5em;vertical-align:middle;padding:16px 24px 16px 24px;border:solid 1px rgba(255, 255, 255, 0.5);border-radius:5px;background:no-repeat center center url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E");}.home{display:inline-block;max-width:16px;max-height:16px;line-height:16px;margin:0 5px 0 0;cursor:pointer;}.home::before{content:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAS1BMVEUAAAD8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/PyxWsjVAAAAGHRSTlMAx6oLLRnYiXFEvPbey518NQbsj11QKhQ+J0ktAAAAbElEQVQY053ISQ7DMAwEwRYpavHurPz/SwMoMpD46L4MpvBTB0zTP+R9z55Ebh0yQL5DaDA+0WVR3h3Gikp9iPKF9MIkQhSDwUlGHCLQxhLGJkpLZcNYS/tdyorP/DQ7HgBqKRUgHBDcw2X4AFsJCSXB/5UVAAAAAElFTkSuQmCC);}h1>a,h2>a,h3>a,h4>a,h5>a,h6>a{display:none;max-width:16px;max-height:24px;margin:-8px 0 0 5px;vertical-align:middle;}h1:hover>a,h2:hover>a,h3:hover>a,h4:hover>a,h5:hover>a,h6:hover>a{display:inline-block;text-decoration:none!important;}h1>a::before,h2>a::before,h3>a::before,h4>a::before,h5>a::before,h6>a::before{content:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAiBAMAAACkb0T0AAAAMFBMVEUAAAD8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/PzS+N+gAAAAD3RSTlMABab5cVY73o4k2cJTPb1Q83MyAAAAh0lEQVQY02P4DwWkM7YxsNiDGJ8EGBgmgxiKDDkCLAwgAQn7hQxARiGj8v8/IIYDi2a9GZChHiAnMLmBjeGTaIBUAMcFaYaNvA2sC1kD9RkSOCwZF7IW/WdgSP4+yYHlP5Bx/r+RgDiIIfW5kVEfyHBgPMYgBLLdkoEBKABkfHZgyIa7h04MAOVty/RC/PhoAAAAAElFTkSuQmCC);}h1>a:hover::after,h2>a:hover::after,h3>a:hover::after,h4>a:hover::after,h5>a:hover::after,h6>a:hover::after{content:"Hivatkozás erre a címre";display:block;padding:12px;position:absolute;margin:-8px 8px;font-weight:400;font-size:14px;background:rgba(0,0,0,.8);color:#fff;border-radius:4px;}input[type=radio]{display:none;}input[type=radio]:checked ~ ul{display:block;}.fig{margin-top:-12px;padding-bottom:12px;display:block;text-align:center;font-style:italic;}div.page{width:100%;padding:1.618em 3.236em;margin:auto;line-height:24px;}div.page ol{margin:0 0 24px 12px;padding-left:0px;}div.page ul{margin:0 0 24px 24px;list-style:disc outside;padding-left:0px;}div.page ol{list-style-type:none;counter-reset:list;}div.page ol li:before{counter-increment:list;content:counters(list,".") ". ";}div.pre{overflow-x:auto;margin:1px 0px 24px;}div.table{overflow-x:auto;margin:0px 0px 24px;}div.info,div.hint,div.warn{padding:12px;line-height:24px;margin-bottom:24px;}div.info>p,div.hint>p,div.warn>p{margin:0px;}div.info>p:first-child,div.hint>p:first-child,div.warn>p:first-child{display:block;font-weight:700;padding:2px 8px 2px;margin:-12px -12px 8px -12px;vertical-align:middle;}div.info>p:first-child>span,div.hint>p:first-child>span,div.warn>p:first-child>span{display:block;max-height:20px;margin:0px;vertical-align:middle;}div.info>p:first-child>span::before,div.hint>p:first-child>span::before,div.warn>p:first-child>span::before{content:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAApUlEQVQ4y82TwQnDMAxFpVJyLPiSbbJETr13Fo+RZZxLRghkgnSEEni9ONS0sg1tDv3wwfjbX7Iki/wVAAd4IPBCiHuudrkHVvJYgb50eaOO7cMkpv0eeQGukYuRiUsNvBFpSvTJ0P2un0Sk+6Le3WEG58yBFrjt61r7Qqbij0gLIX3CaPgOqtqoaiMig6GPtTbOwCVyLraxMEj3yPIgHTLKv3ymJySzt16bW/sWAAAAAElFTkSuQmCC);}p>div:last-child,dd>*:last-child,td>*:last-child,li>ol,li>ul{margin-bottom:0px!important;}img{border:0px;}img.imgt{display:inline-block;max-height:22px!important;padding:0px;margin:-4px 0px 0px 0px;vertical-align:middle;}img.imgl{float:left;margin:0px 12px 12px 0px;}img.imgr{float:right;margin:0px 0px 12px 12px;}div.imgc{text-align:center;padding:0px;margin:0 0 12px 0;clear:both;}img.imgc{max-width:100%;}img.imgw{width:100%;margin-bottom:12px;clear:both;}.btn{border-radius:2px;line-height:normal;white-space:nowrap;color:inherit;text-align:center;cursor:pointer;font-size:100%;padding:4px 12px 8px;border:1px solid rgba(0,0,0,.1);text-decoration:none;box-shadow:inset 0 1px 2px -1px hsla(0,0%,100%,.5),inset 0 -2px 0 0 rgba(0,0,0,.1);vertical-align:middle;*zoom:1;user-select:none;transition:all .1s linear}.prev{float:left;}.prev::before{content:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAANlBMVEUAAABAQEBAQEBAQEBAQEBAQEBAQEBBQUFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAWW5SEAAAAEnRSTlMA/fC9r2kXAjMN34F3ZlUu6B40Y5wGAAAAVElEQVQY08XPSw6AIAwEUIbS8lFE739Zq6luGtbM8iXTTMOCZGECiCX/MhIQTyCNz+SRrUc1MWKVvR5KYCN6pUFDRtqq4Sql9IYJ+aI/70f4qdOHblOhAuUcC5KnAAAAAElFTkSuQmCC);}.next{float:right;}.next::after{content:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASBAMAAACk4JNkAAAAJFBMVEUAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEC4lvDfAAAAC3RSTlMAx711ZjlFPh3zLASjkrYAAABDSURBVAjXY6AUsGhvcgAzOKR3797YAGIx7t5mvVsAxPLevZ159xYQS3v3zgLrTSDW7tTQBcy7ESyELEIHwhSEyQjbAAH1HsMY8tCHAAAAAElFTkSuQmCC);}@media screen and (max-width:991.98px){nav.mobile{display:block;}nav.side{display:none;}#menuchk:checked ~ nav.side{display:block;}#_m{margin-left:0px;}}#_ablak:checked ~ nav div ul li[rel=ablak]>.toc,#_lokalizacio:checked ~ nav div ul li[rel=lokalizacio]>.toc,#_fontok:checked ~ nav div ul li[rel=fontok]>.toc,#_kinezet:checked ~ nav div ul li[rel=kinezet]>.toc,#_esemenykezeles:checked ~ nav div ul li[rel=esemenykezeles]>.toc,#_nincs_esemeny:checked ~ nav div ul li[rel=nincs_esemeny]>.toc,#_eger:checked ~ nav div ul li[rel=eger]>.toc,#_gamepad:checked ~ nav div ul li[rel=gamepad]>.toc,#_billentyuzet:checked ~ nav div ul li[rel=billentyuzet]>.toc,#_rahuzott_fajl:checked ~ nav div ul li[rel=rahuzott_fajl]>.toc,#_ablakatmeretezes:checked ~ nav div ul li[rel=ablakatmeretezes]>.toc,#_vagolap:checked ~ nav div ul li[rel=vagolap]>.toc,#_elrendezes:checked ~ nav div ul li[rel=elrendezes]>.toc,#_tarolok:checked ~ nav div ul li[rel=tarolok]>.toc,#_cimkek:checked ~ nav div ul li[rel=cimkek]>.toc,#_bevitel:checked ~ nav div ul li[rel=bevitel]>.toc,#_gombok:checked ~ nav div ul li[rel=gombok]>.toc,#_vonalak:checked ~ nav div ul li[rel=vonalak]>.toc,#_egyedi:checked ~ nav div ul li[rel=egyedi]>.toc,#_pelda:checked ~ nav div ul li[rel=pelda]>.toc,#_finomhangolas:checked ~ nav div ul li[rel=finomhangolas]>.toc,#_smgui_licensz:checked ~ nav div ul li[rel=smgui_licensz]>.toc,div.page{display:none;}#_ablak:checked ~ nav div ul li[rel=ablak]>ul,#_ablak:checked ~ nav div ul li[rel=ablak]>.current,#_ablak:checked ~ div div[rel=ablak],#_lokalizacio:checked ~ nav div ul li[rel=lokalizacio]>ul,#_lokalizacio:checked ~ nav div ul li[rel=lokalizacio]>.current,#_lokalizacio:checked ~ div div[rel=lokalizacio],#_fontok:checked ~ nav div ul li[rel=fontok]>ul,#_fontok:checked ~ nav div ul li[rel=fontok]>.current,#_fontok:checked ~ div div[rel=fontok],#_kinezet:checked ~ nav div ul li[rel=kinezet]>ul,#_kinezet:checked ~ nav div ul li[rel=kinezet]>.current,#_kinezet:checked ~ div div[rel=kinezet],#_esemenykezeles:checked ~ nav div ul li[rel=esemenykezeles]>ul,#_esemenykezeles:checked ~ nav div ul li[rel=esemenykezeles]>.current,#_esemenykezeles:checked ~ div div[rel=esemenykezeles],#_nincs_esemeny:checked ~ nav div ul li[rel=nincs_esemeny]>ul,#_nincs_esemeny:checked ~ nav div ul li[rel=nincs_esemeny]>.current,#_nincs_esemeny:checked ~ div div[rel=nincs_esemeny],#_eger:checked ~ nav div ul li[rel=eger]>ul,#_eger:checked ~ nav div ul li[rel=eger]>.current,#_eger:checked ~ div div[rel=eger],#_gamepad:checked ~ nav div ul li[rel=gamepad]>ul,#_gamepad:checked ~ nav div ul li[rel=gamepad]>.current,#_gamepad:checked ~ div div[rel=gamepad],#_billentyuzet:checked ~ nav div ul li[rel=billentyuzet]>ul,#_billentyuzet:checked ~ nav div ul li[rel=billentyuzet]>.current,#_billentyuzet:checked ~ div div[rel=billentyuzet],#_rahuzott_fajl:checked ~ nav div ul li[rel=rahuzott_fajl]>ul,#_rahuzott_fajl:checked ~ nav div ul li[rel=rahuzott_fajl]>.current,#_rahuzott_fajl:checked ~ div div[rel=rahuzott_fajl],#_ablakatmeretezes:checked ~ nav div ul li[rel=ablakatmeretezes]>ul,#_ablakatmeretezes:checked ~ nav div ul li[rel=ablakatmeretezes]>.current,#_ablakatmeretezes:checked ~ div div[rel=ablakatmeretezes],#_vagolap:checked ~ nav div ul li[rel=vagolap]>ul,#_vagolap:checked ~ nav div ul li[rel=vagolap]>.current,#_vagolap:checked ~ div div[rel=vagolap],#_elrendezes:checked ~ nav div ul li[rel=elrendezes]>ul,#_elrendezes:checked ~ nav div ul li[rel=elrendezes]>.current,#_elrendezes:checked ~ div div[rel=elrendezes],#_tarolok:checked ~ nav div ul li[rel=tarolok]>ul,#_tarolok:checked ~ nav div ul li[rel=tarolok]>.current,#_tarolok:checked ~ div div[rel=tarolok],#_cimkek:checked ~ nav div ul li[rel=cimkek]>ul,#_cimkek:checked ~ nav div ul li[rel=cimkek]>.current,#_cimkek:checked ~ div div[rel=cimkek],#_bevitel:checked ~ nav div ul li[rel=bevitel]>ul,#_bevitel:checked ~ nav div ul li[rel=bevitel]>.current,#_bevitel:checked ~ div div[rel=bevitel],#_gombok:checked ~ nav div ul li[rel=gombok]>ul,#_gombok:checked ~ nav div ul li[rel=gombok]>.current,#_gombok:checked ~ div div[rel=gombok],#_vonalak:checked ~ nav div ul li[rel=vonalak]>ul,#_vonalak:checked ~ nav div ul li[rel=vonalak]>.current,#_vonalak:checked ~ div div[rel=vonalak],#_egyedi:checked ~ nav div ul li[rel=egyedi]>ul,#_egyedi:checked ~ nav div ul li[rel=egyedi]>.current,#_egyedi:checked ~ div div[rel=egyedi],#_pelda:checked ~ nav div ul li[rel=pelda]>ul,#_pelda:checked ~ nav div ul li[rel=pelda]>.current,#_pelda:checked ~ div div[rel=pelda],#_finomhangolas:checked ~ nav div ul li[rel=finomhangolas]>ul,#_finomhangolas:checked ~ nav div ul li[rel=finomhangolas]>.current,#_finomhangolas:checked ~ div div[rel=finomhangolas],#_smgui_licensz:checked ~ nav div ul li[rel=smgui_licensz]>ul,#_smgui_licensz:checked ~ nav div ul li[rel=smgui_licensz]>.current,#_smgui_licensz:checked ~ div div[rel=smgui_licensz],#_:checked ~ div div[rel=_]{display:block;}</style>
  9. <style rel="theme">hr,table,th,td{border-color:#e1e4e5;}th{background:#d6d6d6;}tr:nth-child(odd){background:#f3f6f6;}a{text-decoration:none;color:#2980B9;}samp{background:rgba(0,0,0,.1);color:#408040;}.content{background:#fcfcfc;color:#404040;font-family:Lato,Helvetica,Neue,Arial,Deja Vu,sans-serif;}.title,.home,h1>a,h2>a,h3>a,h4>a,h5>a,h6>a{background:#2980B9;color:#fcfcfc;}.version{color:rgba(255,255,255,0.3);}.search{border:1px solid #2472a4;background:#fcfcfc;}.nav{background:#343131;color:#d9d9d9;}.nav p{color:#55a5d9;}.nav label:hover,.nav a:hover{background:#4e4a4a;}.nav .current{background:#fcfcfc;color:#404040;}.nav li>ul>li{background:#e3e3e3;}.nav li>ul>li>a{color:#404040;}.nav li>ul>li>a:hover{background:#d6d6d6;}.pre {border:1px solid #e1e4e5;background:#f8f8f8;}.info{background:#e7f2fa;}.info>p:first-child{background:#6ab0de;color:#fff;}.hint{background:#dbfaf4;}.hint>p:first-child{background:#1abc9c;color:#fff;}.warn{background:#ffedcc;}.warn>p:first-child{background:#f0b37e;color:#fff;}.btn{background:#f3f6f6;}.btn:hover{background:#e5ebeb;}.hl_h{background-color:#ccffcc;}.hl_c{color:#808080;font-style:italic;}.hl_p{color:#1f7199;}.hl_o{color:#404040;}.hl_n{color:#0164eb;}.hl_s{color:#986801;}.hl_t{color:#60A050;}.hl_k{color:#a626a4;}.hl_f{color:#2a9292;}.hl_v{color:#e95649;}.ui1{border:1px outset #a0a0a0;background:#a0a0a0;color:#222;}</style>
  10. </head>
  11. <body>
  12. <div class="frame content">
  13. <input type="radio" name="page" id="_" checked><input type="radio" name="page" id="_ablak"><input type="radio" name="page" id="_lokalizacio"><input type="radio" name="page" id="_fontok"><input type="radio" name="page" id="_kinezet"><input type="radio" name="page" id="_esemenykezeles"><input type="radio" name="page" id="_nincs_esemeny"><input type="radio" name="page" id="_eger"><input type="radio" name="page" id="_gamepad"><input type="radio" name="page" id="_billentyuzet"><input type="radio" name="page" id="_rahuzott_fajl"><input type="radio" name="page" id="_ablakatmeretezes"><input type="radio" name="page" id="_vagolap"><input type="radio" name="page" id="_elrendezes"><input type="radio" name="page" id="_tarolok"><input type="radio" name="page" id="_cimkek"><input type="radio" name="page" id="_bevitel"><input type="radio" name="page" id="_gombok"><input type="radio" name="page" id="_vonalak"><input type="radio" name="page" id="_egyedi"><input type="radio" name="page" id="_pelda"><input type="radio" name="page" id="_finomhangolas"><input type="radio" name="page" id="_smgui_licensz">
  14. <input type="checkbox" id="menuchk" style="display:none;"><nav class="side nav"><div>
  15. <div class="title"><a href="https://gitlab.com/bztsrc/smgui">Státusz-Módú GUI</a><div class="version">0.0.1</div><input id="_q" class="search" type="text" required="required" onkeyup="s(this.value);"></div> <div id="_s" class="nav"></div>
  16. <div id="_t" class="nav">
  17. <p>Alapok</p>
  18. <ul>
  19. <li rel="ablak"><label class="toc" for="_ablak">Ablak</label><div class="current">Ablak</div><ul>
  20. <li class="h2"><a href="#inicializalas" onclick="m()">Inicializálás</a></li>
  21. <li class="h2"><a href="#felszabaditas" onclick="m()">Felszabadítás</a></li>
  22. <li class="h2"><a href="#teljeskepernyo" onclick="m()">Teljesképernyő</a></li>
  23. <li class="h2"><a href="#hatterablak" onclick="m()">Háttérablak</a></li>
  24. <li class="h2"><a href="#altalanos_szerkezet" onclick="m()">Általános szerkezet</a></li>
  25. </ul></li>
  26. <li rel="lokalizacio"><label class="toc" for="_lokalizacio">Lokalizáció</label><div class="current">Lokalizáció</div><ul>
  27. <li class="h2"><a href="#nyelvvalasztas" onclick="m()">Nyelvválasztás</a></li>
  28. </ul></li>
  29. <li rel="fontok"><label class="toc" for="_fontok">Fontok</label><div class="current">Fontok</div><ul>
  30. <li class="h2"><a href="#tetszoleges_implementacio_megadasa" onclick="m()">Tetszőleges implementáció megadása</a></li>
  31. <li class="h2"><a href="#font_betoltese" onclick="m()">Font betöltése</a></li>
  32. </ul></li>
  33. <li rel="kinezet"><label class="toc" for="_kinezet">Kinézet</label><div class="current">Kinézet</div><ul>
  34. <li class="h2"><a href="#egermutato" onclick="m()">Egérmutató</a></li>
  35. <li class="h2"><a href="#szintema" onclick="m()">Színtéma</a></li>
  36. <li class="h2"><a href="#bor" onclick="m()">Bőr</a></li>
  37. </ul></li>
  38. </ul>
  39. <p>Események</p>
  40. <ul>
  41. <li rel="esemenykezeles"><label class="toc" for="_esemenykezeles">Eseménykezelés</label><div class="current">Eseménykezelés</div><ul>
  42. </ul></li>
  43. <li rel="nincs_esemeny"><label class="toc" for="_nincs_esemeny">Nincs esemény</label><div class="current">Nincs esemény</div><ul>
  44. </ul></li>
  45. <li rel="eger"><label class="toc" for="_eger">Egér</label><div class="current">Egér</div><ul>
  46. </ul></li>
  47. <li rel="gamepad"><label class="toc" for="_gamepad">Gamepad</label><div class="current">Gamepad</div><ul>
  48. </ul></li>
  49. <li rel="billentyuzet"><label class="toc" for="_billentyuzet">Billentyűzet</label><div class="current">Billentyűzet</div><ul>
  50. </ul></li>
  51. <li rel="rahuzott_fajl"><label class="toc" for="_rahuzott_fajl">Ráhúzott fájl</label><div class="current">Ráhúzott fájl</div><ul>
  52. </ul></li>
  53. <li rel="ablakatmeretezes"><label class="toc" for="_ablakatmeretezes">Ablakátméretezés</label><div class="current">Ablakátméretezés</div><ul>
  54. </ul></li>
  55. <li rel="vagolap"><label class="toc" for="_vagolap">Vágólap</label><div class="current">Vágólap</div><ul>
  56. <li class="h2"><a href="#beillesztes" onclick="m()">Beillesztés</a></li>
  57. <li class="h2"><a href="#kivagas" onclick="m()">Kivágás</a></li>
  58. </ul></li>
  59. </ul>
  60. <p>Űrlapok</p>
  61. <ul>
  62. <li rel="elrendezes"><label class="toc" for="_elrendezes">Elrendezés</label><div class="current">Elrendezés</div><ul>
  63. <li class="h2"><a href="#mezo_jelzok" onclick="m()">Mező jelzők</a></li>
  64. <li class="h2"><a href="#pozicionalas" onclick="m()">Pozícionálás</a></li>
  65. <li class="h2"><a href="#tobbszalusag" onclick="m()">Többszálúság</a></li>
  66. <li class="h2"><a href="#ujrarajzolas" onclick="m()">Újrarajzolás</a></li>
  67. </ul></li>
  68. <li rel="tarolok"><label class="toc" for="_tarolok">Tárolók</label><div class="current">Tárolók</div><ul>
  69. <li class="h2"><a href="#felugro" onclick="m()">Felugró</a></li>
  70. <li class="h2"><a href="#menu" onclick="m()">Menü</a></li>
  71. <li class="h2"><a href="#divizio" onclick="m()">Divízió</a></li>
  72. <li class="h2"><a href="#tablazat" onclick="m()">Táblázat</a></li>
  73. </ul></li>
  74. <li rel="cimkek"><label class="toc" for="_cimkek">Cimkék</label><div class="current">Cimkék</div><ul>
  75. <li class="h2"><a href="#cimke" onclick="m()">Cimke</a></li>
  76. <li class="h2"><a href="#statusz" onclick="m()">Státusz</a></li>
  77. <li class="h2"><a href="#decimalis" onclick="m()">Decimális</a></li>
  78. <li class="h2"><a href="#hexadecimalis" onclick="m()">Hexadecimális</a></li>
  79. <li class="h2"><a href="#folyamatjelzo" onclick="m()">Folyamatjelző</a></li>
  80. <li class="h2"><a href="#lebegopontos" onclick="m()">Lebegőpontos</a></li>
  81. <li class="h2"><a href="#kep" onclick="m()">Kép</a></li>
  82. </ul></li>
  83. <li rel="bevitel"><label class="toc" for="_bevitel">Bevitel</label><div class="current">Bevitel</div><ul>
  84. <li class="h2"><a href="#szoveg" onclick="m()">Szöveg</a></li>
  85. <li class="h2"><a href="#valasztodoboz" onclick="m()">Választódoboz</a></li>
  86. <li class="h2"><a href="#opciolista" onclick="m()">Opciólista</a></li>
  87. <li class="h2"><a href="#lebegopont" onclick="m()">Lebegőpont</a></li>
  88. <li class="h2"><a href="#egeszszam" onclick="m()">Egészszám</a></li>
  89. <li class="h2"><a href="#csuszka" onclick="m()">Csúszka</a></li>
  90. <li class="h2"><a href="#fuggoleges_szkrollozo" onclick="m()">Függőleges szkrollozó</a></li>
  91. <li class="h2"><a href="#vizszintes_szkrollozo" onclick="m()">Vízszintes szkrollozó</a></li>
  92. <li class="h2"><a href="#szin" onclick="m()">Szín</a></li>
  93. <li class="h2"><a href="#fajl" onclick="m()">Fájl</a></li>
  94. <li class="h2"><a href="#eleresi_ut" onclick="m()">Elérési út</a></li>
  95. </ul></li>
  96. <li rel="gombok"><label class="toc" for="_gombok">Gombok</label><div class="current">Gombok</div><ul>
  97. <li class="h2"><a href="#kapcsolo" onclick="m()">Kapcsoló</a></li>
  98. <li class="h2"><a href="#pipa" onclick="m()">Pipa</a></li>
  99. <li class="h2"><a href="#valaszto" onclick="m()">Választó</a></li>
  100. <li class="h2"><a href="#gomb" onclick="m()">Gomb</a></li>
  101. <li class="h2"><a href="#gombkapcsolo" onclick="m()">Gombkapcsoló</a></li>
  102. <li class="h2"><a href="#ikongomb" onclick="m()">Ikongomb</a></li>
  103. </ul></li>
  104. <li rel="vonalak"><label class="toc" for="_vonalak">Vonalak</label><div class="current">Vonalak</div><ul>
  105. <li class="h2"><a href="#vonal" onclick="m()">Vonal</a></li>
  106. <li class="h2"><a href="#vizszintes_osszekotes" onclick="m()">Vízszintes összekötés</a></li>
  107. <li class="h2"><a href="#fuggoleges_osszekotes" onclick="m()">Függőleges összekötés</a></li>
  108. <li class="h2"><a href="#bezier_iv" onclick="m()">Bezier ív</a></li>
  109. </ul></li>
  110. <li rel="egyedi"><label class="toc" for="_egyedi">Egyedi</label><div class="current">Egyedi</div><ul>
  111. <li class="h2"><a href="#meretezes" onclick="m()">Méretezés</a></li>
  112. <li class="h2"><a href="#megjelenites" onclick="m()">Megjelenítés</a></li>
  113. <li class="h2"><a href="#kontroller" onclick="m()">Kontroller</a></li>
  114. <li class="h2"><a href="#destruktor" onclick="m()">Destruktor</a></li>
  115. </ul></li>
  116. </ul>
  117. <p>Függelék</p>
  118. <ul>
  119. <li rel="pelda"><label class="toc" for="_pelda">Példa</label><div class="current">Példa</div><ul>
  120. </ul></li>
  121. <li rel="finomhangolas"><label class="toc" for="_finomhangolas">Finomhangolás</label><div class="current">Finomhangolás</div><ul>
  122. <li class="h2"><a href="#alap" onclick="m()">Alap</a></li>
  123. <li class="h3"><a href="#ui_implementation" onclick="m()">UI_IMPLEMENTATION</a></li>
  124. <li class="h3"><a href="#ui_noaa" onclick="m()">UI_NOAA</a></li>
  125. <li class="h3"><a href="#ui_maxevents" onclick="m()">UI_MAXEVENTS</a></li>
  126. <li class="h3"><a href="#ui_maxpopups" onclick="m()">UI_MAXPOPUPS</a></li>
  127. <li class="h3"><a href="#ui_backend_initialized" onclick="m()">UI_BACKEND_INITIALIZED</a></li>
  128. <li class="h3"><a href="#ui_backend_noflush" onclick="m()">UI_BACKEND_NOFLUSH</a></li>
  129. <li class="h2"><a href="#glfw3" onclick="m()">GLFW3</a></li>
  130. <li class="h3"><a href="#ui_glfw_noshader" onclick="m()">UI_GLFW_NOSHADER</a></li>
  131. <li class="h3"><a href="#ui_glfw_gles2" onclick="m()">UI_GLFW_GLES2</a></li>
  132. <li class="h3"><a href="#ui_glfw_customhooks" onclick="m()">UI_GLFW_CUSTOMHOOKS</a></li>
  133. </ul></li>
  134. <li rel="smgui_licensz"><label class="toc" for="_smgui_licensz">SMGUI Licensz</label><div class="current">SMGUI Licensz</div><ul>
  135. </ul>
  136. </div>
  137. </div></nav>
  138. <div id="_m">
  139. <nav class="mobile title">Státusz-Módú GUI<label for="menuchk" class="menu"></label></nav>
  140. <div class="page" rel="_">
  141. <h1>Státusz-Módú GUI API</h1>
  142. <p>Üdvözöl az <a href="https://bztsrc.gitlab.io/smgui" target="new">SMGUI</a>, a státusz vezérelt grafikus felhasználói felület eszköztár
  143. kézikönyve.</p>
  144. <p>A <b>státusz-vezérelt UI</b> alapelve az, hogy már úgyis megvannak a változóid, szóval elég csak hivatkozni
  145. azokra egy űrlapból, nem kell sem visszahívás sem azonnali kódlekezlés, csupán csak azon már meglévő
  146. változók értékei vezérlik a GUI megjelenítését.</p>
  147. <div class="hint"><p><span>TIPP</span></p><p> Ez a kézikönyv internet nélkül is használható. A <span class="mouseright"></span> jobb-klikk menüben válaszd az "Oldal mentése" menüpontot.</p></div>
  148. <h2>Behúzás</h2>
  149. <p>Ez a függvénykönyvtár mindent tartalmaz egyetlen fejlécfájlban, és használható mind fejléc, mind implementációs
  150. módban. Alapból a fejléc-mód van használatban, ami lehetővé teszi, hogy más fejlécekből is behúzásra kerüljön, és
  151. nem tartalmazza ilyenkor az implementációt. Az implementációs módhoz pontosan egyetlen egy .c/.cpp forrásban meg
  152. kell adni az <samp>UI_IMPLEMENTATION</samp> előfordító define-t pontosan ezen fejléc fájl include-ja előtt.</p>
  153. <p>Az alap függvénykönyvtár platform és motor független. Bármilyen motorral és fontmeghajtóval képes működni, ehhez
  154. csak be kell húzni a megfelelő fejlécfájlt még az <b>ui.h</b> előtt. Például:</p>
  155. <div class="pre"><pre class="lineno">1<br>2<br>3<br>4<br></pre><code><span class="hl_p">#include &quot;ui_glfw.h&quot;</span>
  156. <span class="hl_p">#include &quot;ui_psf2.h&quot;</span>
  157. <span class="hl_p">#define UI_IMPLEMENTATION</span>
  158. <span class="hl_p">#include &quot;ui.h&quot;</span></code></div>
  159. <p>A referencia implementáció <a href="https://www.glfw.org" target="new">GLFW3</a>, <a href="https://libsdl.org" target="new">SDL2/3</a> és <a href="https://www.x.org" target="new">X11</a>
  160. motorral érkezik; ami a fontokat illeti, van PC-Screen-Font (amit a Linux Console használ), illetve
  161. <a href="https://gitlab.com/bztsrc/scalable-font2" target="new">Scalable Screen Font</a> (sokkal hatékonyabb, mint a TTF vagy OTF, és bármilyen
  162. font, bitmap, vektor vagy pixel font átkonvertálható SSFN-é).</p>
  163. <p>Alapból - ha semmilyen másik modul nem lett előtte behúzva -, akkor az <b>ui.h</b> behúzza a <i>GLFW3 motort</i> és a <i>PSF2 font</i>
  164. meghajtót, valamint egy minimális, ékezetes betűk néküli ASCII font-ot is beágyaz (2080 bájt lefordítva).</p>
  165. <h2>Visszatérési értékek</h2>
  166. <p>Hacsak másképp nincs jelezve, minden függvény negatív hibakódot ad vissza.</p>
  167. <div class="table"><table><tr><th>Define </th><th>Leírás </th></tr>
  168. <tr><td><samp>UI_OK</samp> </td><td>Sikeres, nem volt hiba </td></tr>
  169. <tr><td><samp>UI_ERR_BADINP</samp> </td><td>Hibás paraméter </td></tr>
  170. <tr><td><samp>UI_ERR_BACKEND</samp> </td><td>Hiba a motor inicializálásánál </td></tr>
  171. <tr><td><samp>UI_ERR_NOMEM</samp> </td><td>Memória foglalási hiba </td></tr></table></div><br style="clear:both;"><label class="btn next" accesskey="n" for="_ablak" title="Ablak">Következő</label></div>
  172. <div class="page" rel="ablak"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Főoldal"></label>&nbsp;»</li><li>&nbsp;Ablak</li></ul><hr></div>
  173. <h1 id="ablak">Ablak<a href="#ablak"></a></h1>
  174. <h2 id="inicializalas">Inicializálás<a href="#inicializalas"></a></h2>
  175. <div class="pre"><pre class="lineno">1<br></pre><code><span class="hl_t">int</span> <span class="hl_f">ui_init</span>(<span class="hl_v">ui_t</span> <span class="hl_o">*</span><span class="hl_v">ctx</span>, <span class="hl_t">int</span> <span class="hl_v">txtc</span>, <span class="hl_t">char</span> <span class="hl_o">**</span><span class="hl_v">txtv</span>, <span class="hl_t">int</span> <span class="hl_v">w</span>, <span class="hl_t">int</span> <span class="hl_v">h</span>, <span class="hl_v">ui_image_t</span> <span class="hl_o">*</span><span class="hl_v">icon</span>);</code></div>
  176. <p>Inicializálja az UI kontextust és ablakot nyit. A legelső sztringnek a <samp>txtv[]</samp> tömbben az ablak fejlécének kell lennie, a többi
  177. szabadon választható.</p>
  178. <div class="table"><table><tr><th>Paraméter </th><th>Leírás </th></tr>
  179. <tr><td><samp>ctx</samp> </td><td>Mutató az UI kontextusra </td></tr>
  180. <tr><td><samp>txtc</samp> </td><td>Sztringek száma </td></tr>
  181. <tr><td><samp>txtv</samp> </td><td><a href="#lokalizacio" onclick="c('lokalizacio')">Lokalizáció</a>hoz sztringtömb </td></tr>
  182. <tr><td><samp>w</samp> </td><td>Ablak szélessége </td></tr>
  183. <tr><td><samp>h</samp> </td><td>Ablak magassága </td></tr>
  184. <tr><td><samp>icon</samp> </td><td>Ablak ikonja <a href="#kep" onclick="c('kep')">kép</a> (vagy NULL) </td></tr></table></div>
  185. <p>Siker esetén 0-val tér vissza, egyébként hibakóddal.</p>
  186. <h2 id="felszabaditas">Felszabadítás<a href="#felszabaditas"></a></h2>
  187. <div class="pre"><pre class="lineno">1<br></pre><code><span class="hl_t">int</span> <span class="hl_f">ui_free</span>(<span class="hl_v">ui_t</span> <span class="hl_o">*</span><span class="hl_v">ctx</span>);</code></div>
  188. <p>Bezárja az ablakot és felszabadítja a lefoglalt erőforrásokat.</p>
  189. <div class="table"><table><tr><th>Paraméter </th><th>Leírás </th></tr>
  190. <tr><td><samp>ctx</samp> </td><td>Mutató az UI kontextusra </td></tr></table></div>
  191. <p>Siker esetén 0-val tér vissza, egyébként hibakóddal.</p>
  192. <h2 id="teljeskepernyo">Teljesképernyő<a href="#teljeskepernyo"></a></h2>
  193. <div class="pre"><pre class="lineno">1<br></pre><code><span class="hl_t">int</span> <span class="hl_f">ui_fullscreen</span>(<span class="hl_v">ui_t</span> <span class="hl_o">*</span><span class="hl_v">ctx</span>);</code></div>
  194. <p>Váltogatja a kontextust teljesképernyős és ablakos mód között (inicializálást követően ablakos).</p>
  195. <div class="table"><table><tr><th>Paraméter </th><th>Leírás </th></tr>
  196. <tr><td><samp>ctx</samp> </td><td>Mutató az UI kontextusra </td></tr></table></div>
  197. <p>Siker esetén 0-val tér vissza, egyébként hibakóddal.</p>
  198. <h2 id="hatterablak">Háttérablak<a href="#hatterablak"></a></h2>
  199. <div class="pre"><pre class="lineno">1<br></pre><code><span class="hl_t">void</span> <span class="hl_o">*</span><span class="hl_f">ui_getwindow</span>(<span class="hl_v">ui_t</span> <span class="hl_o">*</span><span class="hl_v">ctx</span>);</code></div>
  200. <p>Amennyiben szükség lenne rá, ezzel a funkcióval lekérhető a motor által használt ablak objektum.</p>
  201. <div class="table"><table><tr><th>Paraméter </th><th>Leírás </th></tr>
  202. <tr><td><samp>ctx</samp> </td><td>Mutató az UI kontextusra </td></tr></table></div>
  203. <p>Egy implementációfüggő objektumot ad vissza.</p>
  204. <h2 id="altalanos_szerkezet">Általános szerkezet<a href="#altalanos_szerkezet"></a></h2>
  205. <p>A program általános szerkezetének valami ilyesminek kell lennie:</p>
  206. <div class="pre"><pre class="lineno">1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br>11<br>12<br>13<br>14<br>15<br>16<br>17<br>18<br>19<br>20<br>21<br>22<br>23<br>24<br>25<br>26<br>27<br>28<br>29<br>30<br>31<br>32<br></pre><code><span class="hl_c">/* UI kontextus, ablakonként egy */</span>
  207. <span class="hl_v">ui_t</span> <span class="hl_v">ctx</span>;
  208. <span class="hl_c">/* lokalizációhoz sztringtömb */</span>
  209. <span class="hl_t">enum</span> { <span class="hl_v">WINDOW_TITLE</span>, <span class="hl_v">HELLO_WORLD</span> };
  210. <span class="hl_t">char</span> <span class="hl_o">*</span><span class="hl_v">english</span>[] <span class="hl_o">=</span> { <span class="hl_s">&quot;Window title&quot;</span>, <span class="hl_s">&quot;Hello World!&quot;</span> };
  211. <span class="hl_c">/* ablak megnyitása és kontextus inicializálása */</span>
  212. <span class="hl_f">ui_init</span>(<span class="hl_o">&amp;</span><span class="hl_v">ctx</span>, <span class="hl_n">2</span>, <span class="hl_v">english</span>, <span class="hl_n">640</span>, <span class="hl_n">480</span>, <span class="hl_t">NULL</span>);
  213. <span class="hl_c">/* a fő ciklus */</span>
  214. <span class="hl_k">do</span> {
  215. <span class="hl_c">/* tedd, amit tennél, rajzolj, amit akarsz */</span>
  216. <span class="hl_f">glClearColor</span>(<span class="hl_n">0.0</span>, <span class="hl_n">0.0</span>, <span class="hl_n">0.0</span>, <span class="hl_n">1.0</span>);
  217. <span class="hl_f">glClear</span>(<span class="hl_v">GL_COLOR_BUFFER_BIT</span> <span class="hl_o">|</span> <span class="hl_v">GL_DEPTH_BUFFER_BIT</span>);
  218. <span class="hl_c">/* ... */</span>
  219. <span class="hl_c">/* események lekérése és UI réteg megjelenítése a kívánt űrlappal */</span>
  220. <span class="hl_c">/* ha ez NULL-t ad vissza, ki kell lépni a ciklusból */</span>
  221. <span class="hl_k">if</span>(<span class="hl_o">!</span>(<span class="hl_v">evt</span> <span class="hl_o">=</span> <span class="hl_f">ui_event</span>(<span class="hl_o">&amp;</span><span class="hl_v">ctx</span>, <span class="hl_v">form</span>))) <span class="hl_k">break</span>;
  222. <span class="hl_c">/* események feldolgozása */</span>
  223. <span class="hl_k">switch</span>(<span class="hl_v">evt</span><span class="hl_o">-&gt;</span><span class="hl_v">type</span>) {
  224. <span class="hl_k">case</span> <span class="hl_v">UI_EVT_KEY</span>: <span class="hl_c">/* billentyűleütés */</span> <span class="hl_k">break</span>;
  225. <span class="hl_k">case</span> <span class="hl_v">UI_EVT_MOUSE</span>: <span class="hl_c">/* egérgomb esemény */</span> <span class="hl_k">break</span>;
  226. <span class="hl_k">case</span> <span class="hl_v">UI_EVT_GAMEPAD</span>: <span class="hl_c">/* gamepad esemény */</span> <span class="hl_k">break</span>;
  227. <span class="hl_c">/* ... */</span>
  228. }
  229. } <span class="hl_k">while</span>(<span class="hl_n">1</span>);
  230. <span class="hl_c">/* ablak bezárása */</span>
  231. <span class="hl_f">ui_free</span>(<span class="hl_o">&amp;</span><span class="hl_v">ctx</span>);</code></div><br style="clear:both;"><label class="btn prev" accesskey="p" for="_">Előző</label><label class="btn next" accesskey="n" for="_lokalizacio" title="Lokalizáció">Következő</label></div>
  232. <div class="page" rel="lokalizacio"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Főoldal"></label>&nbsp;»</li><li>&nbsp;Lokalizáció</li></ul><hr></div>
  233. <h1 id="lokalizacio">Lokalizáció<a href="#lokalizacio"></a></h1>
  234. <p>Az SMGUI támogatja a többnyelvűséget, de ehhez a sztringeket össze kell gyűjteni egy tömbbe. Javaslom egy <samp>enum</samp>
  235. létrehozását is az indexekhez.</p>
  236. <div class="pre"><pre>
  237. char *dictionary[];
  238. </pre></div>
  239. <p>Ezt a tömböt át kell adni, amikor az <a href="#ablak" onclick="c('ablak')">ablak</a>ot megnyitjuk. A legelső sztringnek a tömbben az ablak fejlécének kell lennie, a
  240. többi szabadon választható.</p>
  241. <h2 id="nyelvvalasztas">Nyelvválasztás<a href="#nyelvvalasztas"></a></h2>
  242. <div class="pre"><pre class="lineno">1<br></pre><code><span class="hl_t">int</span> <span class="hl_f">ui_settxt</span>(<span class="hl_v">ui_t</span> <span class="hl_o">*</span><span class="hl_v">ctx</span>, <span class="hl_t">char</span> <span class="hl_o">**</span><span class="hl_v">txtv</span>);</code></div>
  243. <p>A nyelv futás közben bármikor megváltoztatható. Az új <samp>txtv[]</samp> tömbnek pontosan annyi elemének kell lennie, mint ahány
  244. elemű az inicializálásnál átadott tömb volt.</p>
  245. <div class="table"><table><tr><th>Paraméter </th><th>Leírás </th></tr>
  246. <tr><td><samp>ctx</samp> </td><td>Mutató az UI kontextusra </td></tr>
  247. <tr><td><samp>txtv</samp> </td><td>Sztringtömb </td></tr></table></div>
  248. <p>Siker esetén 0-val tér vissza, egyébként hibakóddal.</p><br style="clear:both;"><label class="btn prev" accesskey="p" for="_ablak" title="Ablak">Előző</label><label class="btn next" accesskey="n" for="_fontok" title="Fontok">Következő</label></div>
  249. <div class="page" rel="fontok"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Főoldal"></label>&nbsp;»</li><li>&nbsp;Fontok</li></ul><hr></div>
  250. <h1 id="fontok">Fontok<a href="#fontok"></a></h1>
  251. <p>Az SMGUI tetszőleges fontokat képes támogatni, és mindjárt kétféle referencia implementációval érkezik, <b>ui_psf2.h</b>
  252. (alapértelmezett, egyszerű bitmap font) és <b>ui_ssfn.h</b> (vektor, átméretezett bitmap és pixelmap fontok), de saját is
  253. egyszerűen hozzáadható.</p>
  254. <h2 id="tetszoleges_implementacio_megadasa">Tetszőleges implementáció megadása<a href="#tetszoleges_implementacio_megadasa"></a></h2>
  255. <div class="pre"><pre class="lineno">1<br></pre><code><span class="hl_t">int</span> <span class="hl_f">ui_fonthook</span>(<span class="hl_v">ui_t</span> <span class="hl_o">*</span><span class="hl_v">ctx</span>, <span class="hl_v">ui_font_bbox</span> <span class="hl_v">bbox</span>, <span class="hl_v">ui_font_draw</span> <span class="hl_v">draw</span>);</code></div>
  256. <p>Egy bármilyen font formátum támogatásához két visszacsatolás megadására van szükség a kontextusban.</p>
  257. <div class="table"><table><tr><th>Paraméter </th><th>Leírás </th></tr>
  258. <tr><td><samp>ctx</samp> </td><td>Mutató az UI kontextusra </td></tr>
  259. <tr><td><samp>bbox</samp> </td><td>Méretfunkció </td></tr>
  260. <tr><td><samp>draw</samp> </td><td>Kirajzolófunkció </td></tr></table></div>
  261. <p>Siker esetén 0-val tér vissza, egyébként hibakóddal.</p>
  262. <p>A visszacsatolások:</p>
  263. <div class="pre"><pre class="lineno">1<br>2<br></pre><code><span class="hl_t">typedef</span> <span class="hl_t">int</span> (<span class="hl_o">*</span><span class="hl_f">ui_font_bbox</span>)(<span class="hl_t">void</span> <span class="hl_o">*</span><span class="hl_v">fnt</span>, <span class="hl_t">char</span> <span class="hl_o">*</span><span class="hl_v">str</span>, <span class="hl_t">char</span> <span class="hl_o">*</span><span class="hl_v">end</span>,
  264. <span class="hl_t">int</span> <span class="hl_o">*</span><span class="hl_v">w</span>, <span class="hl_t">int</span> <span class="hl_o">*</span><span class="hl_v">h</span>, <span class="hl_t">int</span> <span class="hl_o">*</span><span class="hl_v">l</span>, <span class="hl_t">int</span> <span class="hl_o">*</span><span class="hl_v">t</span>);</code></div>
  265. <p>Megméri a sztringet, és a szélességét a <samp>w</samp>, a magasságát a <samp>h</samp> változóban adja vissza pixelben. Ha van baloldali átfedés,
  266. akkor az az <samp>l</samp>-be kerül. Az alapvonal felülről számítva a <samp>t</samp>-be kerül (mind az <samp>l</samp> és a <samp>t</samp> lehet NULL, ha nincs ezekre
  267. szükség). A sztring egy nullával lezárt UTF-8 sztring <samp>str</samp>-ben, de ha az <samp>end</samp> nem NULL, akkor ott véget ér.</p>
  268. <div class="pre"><pre class="lineno">1<br>2<br>3<br></pre><code><span class="hl_t">typedef</span> <span class="hl_t">int</span> (<span class="hl_o">*</span><span class="hl_f">ui_font_draw</span>)(<span class="hl_t">void</span> <span class="hl_o">*</span><span class="hl_v">fnt</span>, <span class="hl_t">char</span> <span class="hl_o">*</span><span class="hl_v">str</span>, <span class="hl_t">char</span> <span class="hl_o">*</span><span class="hl_v">end</span>,
  269. <span class="hl_t">uint8_t</span> <span class="hl_o">*</span><span class="hl_v">dst</span>, <span class="hl_t">uint32_t</span> <span class="hl_v">color</span>, <span class="hl_t">int</span> <span class="hl_v">x</span>, <span class="hl_t">int</span> <span class="hl_v">y</span>, <span class="hl_t">int</span> <span class="hl_v">l</span>, <span class="hl_t">int</span> <span class="hl_v">t</span>, <span class="hl_t">int</span> <span class="hl_v">p</span>,
  270. <span class="hl_t">int</span> <span class="hl_v">cx0</span>, <span class="hl_t">int</span> <span class="hl_v">cy0</span>, <span class="hl_t">int</span> <span class="hl_v">cx1</span>, <span class="hl_t">int</span> <span class="hl_v">cy1</span>);</code></div>
  271. <p>Kirajzolja a sztringet <samp>x</samp>, <samp>y</samp> koordinátákra (<samp>l</samp> baloldali átfedéssel és <samp>t</samp> alapvonalra) a <samp>dst</samp> pixelbufferre, aminek
  272. egy rasztersora <samp>p</samp> bájtnyi. Nagyon fontos, hogy a megadott <samp>cx0</samp>, <samp>cy0</samp> és <samp>cx1</samp>, <samp>cy1</samp> koordináták közötti crop régión
  273. kívül nem szabad semmit módosítania. Az implementációspecifikus <samp>fnt</samp> hivatkozik a fontra, a szöveg színe <samp>color</samp>, a
  274. nullával lezárt UTF-8 sztring <samp>str</samp>-ben, de ha az <samp>end</samp> nem NULL, akkor ott véget ér.</p>
  275. <h2 id="font_betoltese">Font betöltése<a href="#font_betoltese"></a></h2>
  276. <div class="warn"><p><span>FIGYELEM</span></p><p> Ez a funkció nem inicializálja a fontot, csak letárolja a mutatót, hogy átadja a visszacsatolásoknak. A font
  277. inicializálás és felszabadítás platform-specifikus és a hívó dolga (a PSF2 meghajtónak nincs ezekre szüksége).</p></div>
  278. <div class="pre"><pre class="lineno">1<br></pre><code><span class="hl_t">int</span> <span class="hl_f">ui_font</span>(<span class="hl_v">ui_t</span> <span class="hl_o">*</span><span class="hl_v">ctx</span>, <span class="hl_t">void</span> <span class="hl_o">*</span><span class="hl_v">fnt</span>);</code></div>
  279. <p>Beállítja a használandó fontot.</p>
  280. <div class="table"><table><tr><th>Paraméter </th><th>Leírás </th></tr>
  281. <tr><td><samp>ctx</samp> </td><td>Mutató az UI kontextusra </td></tr>
  282. <tr><td><samp>fnt</samp> </td><td>Használandó font </td></tr></table></div>
  283. <p>Siker esetén 0-val tér vissza, egyébként hibakóddal.</p><br style="clear:both;"><label class="btn prev" accesskey="p" for="_lokalizacio" title="Lokalizáció">Előző</label><label class="btn next" accesskey="n" for="_kinezet" title="Kinézet">Következő</label></div>
  284. <div class="page" rel="kinezet"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Főoldal"></label>&nbsp;»</li><li>&nbsp;Kinézet</li></ul><hr></div>
  285. <h1 id="kinezet">Kinézet<a href="#kinezet"></a></h1>
  286. <h2 id="egermutato">Egérmutató<a href="#egermutato"></a></h2>
  287. <div class="pre"><pre class="lineno">1<br></pre><code><span class="hl_t">int</span> <span class="hl_f">ui_swcursor</span>(<span class="hl_v">ui_t</span> <span class="hl_o">*</span><span class="hl_v">ctx</span>, <span class="hl_v">ui_image_t</span> <span class="hl_o">*</span><span class="hl_v">cursor</span>);</code></div>
  288. <p>Kikapcsolja a hardveres egérmutatót és helyette egy képet rak ki szoftveresen.</p>
  289. <div class="table"><table><tr><th>Paraméter </th><th>Leírás </th></tr>
  290. <tr><td><samp>ctx</samp> </td><td>Mutató az UI kontextusra </td></tr>
  291. <tr><td><samp>cursor</samp> </td><td>Mutató a kurzor <a href="#kep" onclick="c('kep')">kép</a>re </td></tr></table></div>
  292. <p>Siker esetén 0-val tér vissza, egyébként hibakóddal.</p>
  293. <div class="pre"><pre class="lineno">1<br></pre><code><span class="hl_t">int</span> <span class="hl_f">ui_hwcursor</span>(<span class="hl_v">ui_t</span> <span class="hl_o">*</span><span class="hl_v">ctx</span>);</code></div>
  294. <p>Kikapcsolja a szoftveres egérmutatót és engedélyezi a hardverest.</p>
  295. <div class="table"><table><tr><th>Paraméter </th><th>Leírás </th></tr>
  296. <tr><td><samp>ctx</samp> </td><td>Mutató az UI kontextusra </td></tr></table></div>
  297. <p>Siker esetén 0-val tér vissza, egyébként hibakóddal.</p>
  298. <h2 id="szintema">Színtéma<a href="#szintema"></a></h2>
  299. <p>Az SMGUI többféle színtémát is támogat, amik lényegében paletták. Minden palettaelem egy UI elem színének felel meg.
  300. Ezek sorrendben a következők:</p>
  301. <ul><li>előtér (betűk) színe</li>
  302. <li>felugró és menü címsor színe</li>
  303. <li>felugró és menü háttérszíne</li>
  304. <li>felugró és menü árnyékszíne</li>
  305. <li>aktív <a href="#kapcsolo" onclick="c('kapcsolo')">kapcsoló</a> előtérszíne</li>
  306. <li>aktív kapcsoló háttérszíne</li>
  307. <li><a href="#menu" onclick="c('menu')">menü</a> kielemlés előtérszíne</li>
  308. <li>menü kiemelés háttérszíne</li>
  309. <li>inaktív előtérszín</li>
  310. <li>inaktív háttérszín</li>
  311. <li>szkrollozó háttérszíne</li>
  312. <li>beviteli mező előtérszíne</li>
  313. <li>beviteli mező világos keretszín</li>
  314. <li>beviteli mező sötét keretszín</li>
  315. <li>beviteli mező háttérszíne</li>
  316. <li>kiválasztott beviteli mező előtérszíne</li>
  317. <li>kiválasztott beviteli mező keretszíne</li>
  318. <li>kiválasztott beviteli mező kurzorszíne</li>
  319. <li>normál gomb előtérszíne</li>
  320. <li>normál gomb árnyékszíne</li>
  321. <li>normál gomb külső keretszíne</li>
  322. <li>kiválasztott gomb előtérszíne</li>
  323. <li>kiválasztott gomb árnyékszíne</li>
  324. <li>kiválasztott gomb külső keretszíne</li>
  325. <li>gomb világos belső keretszín</li>
  326. <li>gomb sötét belső keretszín</li>
  327. <li>gomb világos háttérszín</li>
  328. <li>gomb sötét háttérszín</li>
  329. <li>folyamatjelző világos színe</li>
  330. <li>folyamatjelző háttérszíne</li>
  331. <li>folyamatjelző sötét színe</li></ul>
  332. <div class="pre"><pre class="lineno">1<br></pre><code><span class="hl_t">int</span> <span class="hl_f">ui_theme</span>(<span class="hl_v">ui_t</span> <span class="hl_o">*</span><span class="hl_v">ctx</span>, <span class="hl_t">uint32_t</span> <span class="hl_o">*</span><span class="hl_v">theme</span>);</code></div>
  333. <p>Beállít egy tetszőleges színtémát. A <samp>theme[]</samp> tömbnek annyi eleműnek kell lennie, ahány UI szín van, lásd a fenti listát.</p>
  334. <div class="table"><table><tr><th>Paraméter </th><th>Leírás </th></tr>
  335. <tr><td><samp>ctx</samp> </td><td>Mutató az UI kontextusra </td></tr>
  336. <tr><td><samp>theme</samp> </td><td>Mutató a palettára </td></tr></table></div>
  337. <p>Siker esetén 0-val tér vissza, egyébként hibakóddal.</p>
  338. <h2 id="bor">Bőr<a href="#bor"></a></h2>
  339. <p>Az SMGUI bőröket is támogat, amik lényegében képek, mindegyik az UI egy-egy elemének felel meg. Ezek sorrendben a következők:</p>
  340. <ul><li>egérkurzor (kattintópont középen)</li>
  341. <li>felugró és menü bal felső sarok</li>
  342. <li>felugró és menü felső középső sáv</li>
  343. <li>felugró és menü jobb felső sarok</li>
  344. <li>felugró és menü bal oldal</li>
  345. <li>felugró és menü háttér</li>
  346. <li>felugró és menü jobb oldal</li>
  347. <li>felugró és menü bal alsó sarok</li>
  348. <li>felugró és menü alsó középső sáv</li>
  349. <li>felugró és menü jobb alsó sarok</li>
  350. <li>felugró és menü cím háttere</li>
  351. <li>felugró és menü bezár gomb</li>
  352. <li>felugró és menü alternatív bal felső sarok</li>
  353. <li>felugró és menü alternatív felső középső sáv</li>
  354. <li>felugró és menü alternatív jobb felső sarok</li>
  355. <li>felugró és menü alternatív bal oldal</li>
  356. <li>felugró és menü alternatív háttér</li>
  357. <li>felugró és menü alternatív jobb oldal</li>
  358. <li>felugró és menü alternatív bal alsó sarok</li>
  359. <li>felugró és menü alternatív alsó középső sáv</li>
  360. <li>felugró és menü alternatív jobb alsó sarok</li>
  361. <li>felugró és menü alternatív cím háttere</li>
  362. <li>felugró és menü alternatív bezár gomb</li>
  363. <li>menü alternatív bal oldal</li>
  364. <li>menü alternatív háttér</li>
  365. <li>menü alternatív jobb oldal</li>
  366. <li>menü kiemelés háttér</li>
  367. <li>beviteli mező háttér</li>
  368. <li>folyamatjelző gomb háttere</li>
  369. <li>csúszka bal oldal</li>
  370. <li>csúszka háttér</li>
  371. <li>csúszka jobb oldal</li>
  372. <li>csúszka gomb</li>
  373. <li>függőleges szkrollozó teteje</li>
  374. <li>függőleges szkrollozó háttere</li>
  375. <li>függőleges szkrollozó alja</li>
  376. <li>függőleges szkrollozó gomb teteje</li>
  377. <li>függőleges szkrollozó gomb közepe</li>
  378. <li>függőleges szkrollozó gomb alja</li>
  379. <li>vízszintes szkrollozó eleje</li>
  380. <li>vízszintes szkrollozó háttere</li>
  381. <li>vízszintes szkrollozó vége</li>
  382. <li>vízszintes szkrollozó gomb bal oldal</li>
  383. <li>vízszintes szkrollozó gomb közepe</li>
  384. <li>vízszintes szkrollozó gomb jobb oldal</li>
  385. <li>pipamező üresen</li>
  386. <li>pipamező bepipálva</li>
  387. <li>választó üresen</li>
  388. <li>választó kiválasztva</li>
  389. <li>normál gomb bal oldal</li>
  390. <li>normál gomb háttere</li>
  391. <li>normál gomb jobb oldal</li>
  392. <li>lenyomott gomb bal oldal</li>
  393. <li>lenyomott gomb háttere</li>
  394. <li>lenyomott gomb jobb oldal</li>
  395. <li>kiválasztott gomb bal oldal</li>
  396. <li>kiválasztott gomb háttere</li>
  397. <li>kiválasztott gomb jobb oldal</li>
  398. <li>balra nyíl gomb</li>
  399. <li>lefelé nyíl gomb</li>
  400. <li>jobbra nyíl gomb</li>
  401. <li>lenyomott balra nyíl gomb</li>
  402. <li>lenyomott lefelé nyíl gomb</li>
  403. <li>lenyomott jobbra nyíl gomb</li>
  404. <li>kiválasztott balra nyíl gomb</li>
  405. <li>kiválasztott lefelé nyíl gomb</li>
  406. <li>kiválasztott jobbra nyíl gomb</li></ul>
  407. <div class="pre"><pre class="lineno">1<br></pre><code><span class="hl_t">int</span> <span class="hl_f">ui_skin</span>(<span class="hl_v">ui_t</span> <span class="hl_o">*</span><span class="hl_v">ctx</span>, <span class="hl_v">ui_image_t</span> <span class="hl_o">*</span><span class="hl_v">skin</span>);</code></div>
  408. <p>Betölt egy tetszőleges bőrt. A <samp>skin[]</samp> tömbnek annyi eleműnek kell lennie, ahány UI elem van, lásd a fenti listát.</p>
  409. <div class="table"><table><tr><th>Paraméter </th><th>Leírás </th></tr>
  410. <tr><td><samp>ctx</samp> </td><td>Mutató az UI kontextusra </td></tr>
  411. <tr><td><samp>skin</samp> </td><td>Mutató a bőr <a href="#kep" onclick="c('kep')">kép</a>ek tömbre </td></tr></table></div>
  412. <p>Siker esetén 0-val tér vissza, egyébként hibakóddal.</p>
  413. <p>Ha az <samp>stb_image.h</samp> be lett húzva az <b>ui.h</b> <i>előtt</i>, akkor a következő függvény is használható, hogy egyetlen PNG képről
  414. töltse be az összes bőrképet:</p>
  415. <div class="pre"><pre class="lineno">1<br></pre><code><span class="hl_t">int</span> <span class="hl_f">ui_pngskin</span>(<span class="hl_v">ui_t</span> <span class="hl_o">*</span><span class="hl_v">ctx</span>, <span class="hl_t">uint8_t</span> <span class="hl_o">*</span><span class="hl_v">png</span>, <span class="hl_t">int</span> <span class="hl_v">size</span>);</code></div>
  416. <p>Betölt egy tetszőleges bőrt egy csomagolt PNG fájlból.</p>
  417. <div class="table"><table><tr><th>Paraméter </th><th>Leírás </th></tr>
  418. <tr><td><samp>ctx</samp> </td><td>Mutató az UI kontextusra </td></tr>
  419. <tr><td><samp>png</samp> </td><td>Mutató a PNG képre </td></tr>
  420. <tr><td><samp>size</samp> </td><td>A PNG kép mérete bájtokban </td></tr></table></div>
  421. <p>Siker esetén 0-val tér vissza, egyébként hibakóddal.</p>
  422. <p>A csomagolt PNG-ben kell lennie egy kommentnek, <samp>x</samp>, <samp>y</samp>, <samp>w</samp>, <samp>h</samp> ASCII decimális számokkal minden sorban, amik területeket
  423. jelölnek a képen. Ilyen csomagolt PNG előállítható például az <a href="https://gitlab.com/bztsrc/spratlas" target="new">sprpack</a> program <samp>-cdt</samp>
  424. kapcsolóival:</p>
  425. <div class="pre"><pre>
  426. sprpack -cdt bőr.png egér.png felugró_balfelső.png felugró_felsőközép.png ...
  427. </pre></div>
  428. <p>Minden UI elem PNG-jét fel kell sorolni, és pontosan abban a sorrendben, ahogy fentebb látszik, máskülönben a bőr PNG nem
  429. fog működni.</p><br style="clear:both;"><label class="btn prev" accesskey="p" for="_fontok" title="Fontok">Előző</label><label class="btn next" accesskey="n" for="_esemenykezeles" title="Eseménykezelés">Következő</label></div>
  430. <div class="page" rel="esemenykezeles"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Főoldal"></label>&nbsp;»</li><li>&nbsp;Eseménykezelés</li></ul><hr></div>
  431. <h1 id="esemenykezeles">Eseménykezelés<a href="#esemenykezeles"></a></h1>
  432. <div class="pre"><pre class="lineno">1<br></pre><code><span class="hl_v">ui_event_t</span> <span class="hl_o">*</span><span class="hl_f">ui_event</span>(<span class="hl_v">ui_t</span> <span class="hl_o">*</span><span class="hl_v">ctx</span>, <span class="hl_v">ui_form_t</span> <span class="hl_o">*</span><span class="hl_v">form</span>);</code></div>
  433. <p>Ez az SMGUI lelke, ez a függvény lekéri az eseményeket és hozzáad a megjelenítéshez egy UI réteget a megadott <a href="#elrendezes" onclick="c('elrendezes')">elrendezés</a>
  434. szerint.</p>
  435. <div class="table"><table><tr><th>Paraméter </th><th>Leírás </th></tr>
  436. <tr><td><samp>ctx</samp> </td><td>Mutató az UI kontextusra </td></tr>
  437. <tr><td><samp>form</samp> </td><td>Űrlap <a href="#elrendezes" onclick="c('elrendezes')">elrendezés</a> </td></tr></table></div>
  438. <p>Ha ki kell lépni a fő ciklusból, NULL-al tér vissza, egyébként egy esemény objektummal.</p>
  439. <p>Ha az UI-tól függetlenül megváltozott az egyik változó, amire az átadott <samp>form</samp> hivatkozik, akkor meg kell hívni az <samp>ui_refresh()</samp>
  440. függvényt az <samp>ui_event()</samp> hívása előtt, hogy kikényszerítsünk egy <a href="#ujrarajzolas" onclick="c('ujrarajzolas')">újrarajzolás</a>t.</p>
  441. <p>A visszaadott eseményt az <samp>evt-&gt;type</samp> alapján kell értelmezni, mivel a legtöbb eseménymező típusfüggő.</p><br style="clear:both;"><label class="btn prev" accesskey="p" for="_kinezet" title="Kinézet">Előző</label><label class="btn next" accesskey="n" for="_nincs_esemeny" title="Nincs esemény">Következő</label></div>
  442. <div class="page" rel="nincs_esemeny"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Főoldal"></label>&nbsp;»</li><li>&nbsp;Nincs esemény</li></ul><hr></div>
  443. <h1 id="nincs_esemeny">Nincs esemény<a href="#nincs_esemeny"></a></h1>
  444. <p>Semmi sem történt.</p>
  445. <div class="table"><table><tr><th>Paraméter </th><th>Leírás </th></tr>
  446. <tr><td><samp>evt-&gt;type</samp> </td><td><samp>UI_EVT_NONE</samp> (0) </td></tr></table></div><br style="clear:both;"><label class="btn prev" accesskey="p" for="_esemenykezeles" title="Eseménykezelés">Előző</label><label class="btn next" accesskey="n" for="_eger" title="Egér">Következő</label></div>
  447. <div class="page" rel="eger"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Főoldal"></label>&nbsp;»</li><li>&nbsp;Egér</li></ul><hr></div>
  448. <h1 id="eger">Egér<a href="#eger"></a></h1>
  449. <p>Ez akkor generálódik, ha egy egérgombot lenyomnak vagy felengednek.</p>
  450. <div class="table"><table><tr><th>Paraméter </th><th>Leírás </th></tr>
  451. <tr><td><samp>evt-&gt;type</samp> </td><td><samp>UI_EVT_MOUSE</samp> </td></tr>
  452. <tr><td><samp>evt-&gt;btn</samp> </td><td>Aktuális gombstátusz </td></tr>
  453. <tr><td><samp>evt-&gt;x</samp> </td><td>Aktuális egér X pozíció </td></tr>
  454. <tr><td><samp>evt-&gt;y</samp> </td><td>Aktuális egér Y pozíció </td></tr></table></div>
  455. <p>A <samp>btn</samp> mező egy bitmaszkot tartalmaz, a következő értékekkel:</p>
  456. <div class="table"><table><tr><th>Define </th><th>Leírás </th></tr>
  457. <tr><td><samp>UI_BTN_L</samp> </td><td>Bal egérgomb </td></tr>
  458. <tr><td><samp>UI_BTN_M</samp> </td><td>Középső egérgomb </td></tr>
  459. <tr><td><samp>UI_BTN_R</samp> </td><td>Jobb egérgomb </td></tr>
  460. <tr><td><samp>UI_BTN_U</samp> </td><td>Felfelegörgetés </td></tr>
  461. <tr><td><samp>UI_BTN_D</samp> </td><td>Lefelegörgetés </td></tr>
  462. <tr><td><samp>UI_BTN_A</samp> </td><td>Balragörgetés </td></tr>
  463. <tr><td><samp>UI_BTN_B</samp> </td><td>Jobbragörgetés </td></tr>
  464. <tr><td><samp>UI_BTN_RELEASE</samp> </td><td>Ha felengedés esemény </td></tr></table></div>
  465. <p>Ha esemény nélkül van szükség az egér pozíciójára, akkor használható az</p>
  466. <div class="pre"><pre class="lineno">1<br></pre><code><span class="hl_t">int</span> <span class="hl_f">ui_getmouse</span>(<span class="hl_v">ui_t</span> <span class="hl_o">*</span><span class="hl_v">ctx</span>, <span class="hl_t">int</span> <span class="hl_o">*</span><span class="hl_v">x</span>, <span class="hl_t">int</span> <span class="hl_o">*</span><span class="hl_v">y</span>);</code></div>
  467. <div class="table"><table><tr><th>Paraméter </th><th>Leírás </th></tr>
  468. <tr><td><samp>ctx</samp> </td><td>Mutató az UI kontextusra </td></tr>
  469. <tr><td><samp>x</samp> </td><td>Mutató az X pozíció tárolásához </td></tr>
  470. <tr><td><samp>y</samp> </td><td>Mutató az Y pozíció tárolásához </td></tr></table></div>
  471. <p>Siker esetén 0-val tér vissza, egyébként hibakóddal.</p><br style="clear:both;"><label class="btn prev" accesskey="p" for="_nincs_esemeny" title="Nincs esemény">Előző</label><label class="btn next" accesskey="n" for="_gamepad" title="Gamepad">Következő</label></div>
  472. <div class="page" rel="gamepad"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Főoldal"></label>&nbsp;»</li><li>&nbsp;Gamepad</li></ul><hr></div>
  473. <h1 id="gamepad">Gamepad<a href="#gamepad"></a></h1>
  474. <p>Ez akkor generálódik, ha valamelyik gamepad státusza megváltozik.</p>
  475. <div class="table"><table><tr><th>Paraméter </th><th>Leírás </th></tr>
  476. <tr><td><samp>evt-&gt;type</samp> </td><td><samp>UI_EVT_GAMEPAD</samp> </td></tr>
  477. <tr><td><samp>evt-&gt;btn</samp> </td><td>Aktuális gombstátusz </td></tr>
  478. <tr><td><samp>evt-&gt;x</samp> </td><td>Bal botkar X pozíció </td></tr>
  479. <tr><td><samp>evt-&gt;y</samp> </td><td>Bal botkar Y pozíció </td></tr>
  480. <tr><td><samp>evt-&gt;rx</samp> </td><td>Jobb botkar X pozíció </td></tr>
  481. <tr><td><samp>evt-&gt;ry</samp> </td><td>Jobb botkar Y pozíció </td></tr>
  482. <tr><td><samp>evt-&gt;key[0]</samp> </td><td>Gamepad indexe ha több is lenne </td></tr></table></div>
  483. <p>A botkarok koordinátái előjelesek, és a -32768 .. +32768 tartományba esnek. A <samp>btn</samp> mező egy bitmaszkot tartalmaz, a következő
  484. értékekkel:</p>
  485. <div class="table"><table><tr><th>Define </th><th>Leírás </th></tr>
  486. <tr><td><samp>UI_BTN_A</samp> </td><td>Az 'A'/kereszt gomb státusza </td></tr>
  487. <tr><td><samp>UI_BTN_B</samp> </td><td>Az 'B'/kör gomb státusza </td></tr>
  488. <tr><td><samp>UI_BTN_X</samp> </td><td>Az 'X'/négyzet gomb státusza </td></tr>
  489. <tr><td><samp>UI_BTN_Y</samp> </td><td>Az 'Y'/háromszög gomb státusza </td></tr>
  490. <tr><td><samp>UI_BTN_L</samp> </td><td>DPad balra státusza </td></tr>
  491. <tr><td><samp>UI_BTN_R</samp> </td><td>DPad jobbra státusza </td></tr>
  492. <tr><td><samp>UI_BTN_U</samp> </td><td>DPad fel státusza </td></tr>
  493. <tr><td><samp>UI_BTN_D</samp> </td><td>DPad le státusza </td></tr>
  494. <tr><td><samp>UI_BTN_BA</samp> </td><td>Vissza gomb státusza </td></tr>
  495. <tr><td><samp>UI_BTN_ST</samp> </td><td>Start gomb státusza </td></tr>
  496. <tr><td><samp>UI_BTN_GU</samp> </td><td>Útmutató gomb státusza </td></tr>
  497. <tr><td><samp>UI_BTN_LT</samp> </td><td>Balhüvelyk gomb státusza </td></tr>
  498. <tr><td><samp>UI_BTN_RT</samp> </td><td>Jobbhüvelyk gomb státusza </td></tr>
  499. <tr><td><samp>UI_BTN_LS</samp> </td><td>Balra shoulder gomb státusza </td></tr>
  500. <tr><td><samp>UI_BTN_RS</samp> </td><td>Jobbra shoulder gomb státusza </td></tr></table></div><br style="clear:both;"><label class="btn prev" accesskey="p" for="_eger" title="Egér">Előző</label><label class="btn next" accesskey="n" for="_billentyuzet" title="Billentyűzet">Következő</label></div>
  501. <div class="page" rel="billentyuzet"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Főoldal"></label>&nbsp;»</li><li>&nbsp;Billentyűzet</li></ul><hr></div>
  502. <h1 id="billentyuzet">Billentyűzet<a href="#billentyuzet"></a></h1>
  503. <p>Ez akkor generálódik, ha egy billentyűt leütnek.</p>
  504. <div class="table"><table><tr><th>Paraméter </th><th>Leírás </th></tr>
  505. <tr><td><samp>evt-&gt;type</samp> </td><td><samp>UI_EVT_KEY</samp> </td></tr>
  506. <tr><td><samp>evt-&gt;btn</samp> </td><td>Módosítók státusza </td></tr>
  507. <tr><td><samp>evt-&gt;key</samp> </td><td>Leütött gomb </td></tr></table></div>
  508. <p>A visszaadott gomb egy UTF-8 karakter, vagy (speciális gombok esetén) egy érvénytelen UTF-8 szekvencia a gomb nevével. A
  509. megkülönböztetéshez meg kell nézni, hogy <samp>key[1]</samp> üres-e, és hogy a legmagasabb bit a <samp>key[0]</samp>-ban be van-e állítva
  510. (érvényes UTF-8) vagy sem (gombnév).</p>
  511. <div class="hint"><p><span>TIPP</span></p><p> Nincs gombleképezés, hogy megtudjuk, milyen kódot gerenál egy gomb, csak ki kell iratni a <samp>evt-&gt;key</samp> tartalmát.</p></div>
  512. <p>A <samp>btn</samp> mező egy bitmaszkot tartalmaz, a következő értékekkel:</p>
  513. <div class="table"><table><tr><th>Define </th><th>Leírás </th></tr>
  514. <tr><td><samp>UI_BTN_SHIFT</samp> </td><td>Az egyik <kbd>Shift</kbd> le van nyomva </td></tr>
  515. <tr><td><samp>UI_BTN_CONTROL</samp> </td><td>Az egyik <kbd>Control</kbd> le van nyomva </td></tr>
  516. <tr><td><samp>UI_BTN_ALT</samp> </td><td>Az egyik <kbd>Alt</kbd> le van nyomva (jobboldalit hívják <kbd>AltGr</kbd>-nek) </td></tr>
  517. <tr><td><samp>UI_BTN_GUI</samp> </td><td>Az egyik <kbd>GUI</kbd> le van nyomva </td></tr></table></div>
  518. <p>A módosító gombok (<samp>LShift</samp>, <samp>RShift</samp>, <samp>LCtrl</samp>, <samp>RCtrl</samp>, <samp>LAlt</samp>, <samp>RAlt</samp>, <samp>LGui</samp> és <samp>RGui</samp>) esetén billentyűfelengedés
  519. esemény is generálódik, ahol a <samp>UI_BTN_RELEASE</samp> be van állítva. A többi gomb nem generál ilyen eseményt.</p><br style="clear:both;"><label class="btn prev" accesskey="p" for="_gamepad" title="Gamepad">Előző</label><label class="btn next" accesskey="n" for="_rahuzott_fajl" title="Ráhúzott fájl">Következő</label></div>
  520. <div class="page" rel="rahuzott_fajl"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Főoldal"></label>&nbsp;»</li><li>&nbsp;Ráhúzott fájl</li></ul><hr></div>
  521. <h1 id="rahuzott_fajl">Ráhúzott fájl<a href="#rahuzott_fajl"></a></h1>
  522. <p>Ez akkor keletkezik, ha a felhasználó egy fájlt húz az ablakra.</p>
  523. <div class="table"><table><tr><th>Paraméter </th><th>Leírás </th></tr>
  524. <tr><td><samp>evt-&gt;type</samp> </td><td><samp>UI_EVT_DROP</samp> </td></tr>
  525. <tr><td><samp>evt-&gt;x</samp> </td><td>Aktuális egér X pozíció </td></tr>
  526. <tr><td><samp>evt-&gt;y</samp> </td><td>Aktuális egér Y pozíció </td></tr>
  527. <tr><td><samp>evt-&gt;fn</samp> </td><td>A fájl elérési útja </td></tr></table></div><br style="clear:both;"><label class="btn prev" accesskey="p" for="_billentyuzet" title="Billentyűzet">Előző</label><label class="btn next" accesskey="n" for="_ablakatmeretezes" title="Ablakátméretezés">Következő</label></div>
  528. <div class="page" rel="ablakatmeretezes"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Főoldal"></label>&nbsp;»</li><li>&nbsp;Ablakátméretezés</li></ul><hr></div>
  529. <h1 id="ablakatmeretezes">Ablakátméretezés<a href="#ablakatmeretezes"></a></h1>
  530. <p>Ez akkor generálódik, ha az ablakot átméretezik.</p>
  531. <div class="table"><table><tr><th>Paraméter </th><th>Leírás </th></tr>
  532. <tr><td><samp>evt-&gt;type</samp> </td><td><samp>UI_EVT_RESIZE</samp> </td></tr>
  533. <tr><td><samp>evt-&gt;x</samp> </td><td>Az új ablak szélesség </td></tr>
  534. <tr><td><samp>evt-&gt;y</samp> </td><td>Az új ablak magasság </td></tr></table></div><br style="clear:both;"><label class="btn prev" accesskey="p" for="_rahuzott_fajl" title="Ráhúzott fájl">Előző</label><label class="btn next" accesskey="n" for="_vagolap" title="Vágólap">Következő</label></div>
  535. <div class="page" rel="vagolap"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Főoldal"></label>&nbsp;»</li><li>&nbsp;Vágólap</li></ul><hr></div>
  536. <h1 id="vagolap">Vágólap<a href="#vagolap"></a></h1>
  537. <h2 id="beillesztes">Beillesztés<a href="#beillesztes"></a></h2>
  538. <p>A vágólap lekéréséhez (amikor olyan <a href="#billentyuzet" onclick="c('billentyuzet')">billentyűzet</a> esemény érkezett, amiben a gomb <samp>Paste</samp>), a következő függvény hívható:</p>
  539. <div class="pre"><pre class="lineno">1<br></pre><code><span class="hl_t">char</span> <span class="hl_o">*</span><span class="hl_f">ui_getclipboard</span>(<span class="hl_v">ui_t</span> <span class="hl_o">*</span><span class="hl_v">ctx</span>);</code></div>
  540. <div class="table"><table><tr><th>Paraméter </th><th>Leírás </th></tr>
  541. <tr><td><samp>ctx</samp> </td><td>Mutató az UI kontextusra </td></tr></table></div>
  542. <p>NULL-t ad vissza, ha a vágólap üres, egyébként a vágólap tartalmát egy újonnan allokált bufferben. A hívó felelőssége
  543. a buffer felszabadítása, ha már nincs rá szükség.</p>
  544. <h2 id="kivagas">Kivágás<a href="#kivagas"></a></h2>
  545. <p>A vágólap beállítására (amikor olyan billentyűzet esemény érkezett, amiben a gomb <samp>Cut</samp> vagy <samp>Copy</samp>), a következő függvény való:</p>
  546. <div class="pre"><pre class="lineno">1<br></pre><code><span class="hl_t">char</span> <span class="hl_o">*</span><span class="hl_f">ui_setclipboard</span>(<span class="hl_v">ui_t</span> <span class="hl_o">*</span><span class="hl_v">ctx</span>, <span class="hl_t">char</span> <span class="hl_o">*</span><span class="hl_v">str</span>);</code></div>
  547. <div class="table"><table><tr><th>Paraméter </th><th>Leírás </th></tr>
  548. <tr><td><samp>ctx</samp> </td><td>Mutató az UI kontextusra </td></tr>
  549. <tr><td><samp>str</samp> </td><td>Vágólapra helyezendő sztring </td></tr></table></div>
  550. <p>Siker esetén 0-val tér vissza, egyébként hibakóddal.</p><br style="clear:both;"><label class="btn prev" accesskey="p" for="_ablakatmeretezes" title="Ablakátméretezés">Előző</label><label class="btn next" accesskey="n" for="_elrendezes" title="Elrendezés">Következő</label></div>
  551. <div class="page" rel="elrendezes"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Főoldal"></label>&nbsp;»</li><li>&nbsp;Elrendezés</li></ul><hr></div>
  552. <h1 id="elrendezes">Elrendezés<a href="#elrendezes"></a></h1>
  553. <p>Az SMGUI nem tartalmaz azonnali kódlekezlést, sem visszahívásokat. Elhelyett feltételezi, hogy már úgyis megvannak
  554. a változóid, és csak egy űrlapot kér, ami ezekre a változókra hivatkozik.</p>
  555. <p>Az űrlap maga egy <samp>ui_form_t</samp> elemeket tartalmazó tömb, amiben a legutolsó elem típusa <i>MINDIG</i> <samp>UI_END</samp>. Néhány mező
  556. általános, mások típusspecifikusak. Az általános mezők a következők:</p>
  557. <div class="table"><table><tr><th>Paraméter </th><th>Leírás </th></tr>
  558. <tr><td><samp>form-&gt;ptr</samp> </td><td>Mutató az adatra </td></tr>
  559. <tr><td><samp>form-&gt;type</samp> </td><td>Űrlapelem típusa </td></tr>
  560. <tr><td><samp>form-&gt;align</samp> </td><td>Űrlapelem igazítása </td></tr>
  561. <tr><td><samp>form-&gt;flags</samp> </td><td>Űrlapelem jelzők (pl. láthatóság) </td></tr>
  562. <tr><td><samp>form-&gt;x</samp> </td><td>Űrlapelem igényelt pozíció </td></tr>
  563. <tr><td><samp>form-&gt;y</samp> </td><td>Űrlapelem igényelt pozíció </td></tr>
  564. <tr><td><samp>form-&gt;w</samp> </td><td>Űrlapelem igényelt szélesség </td></tr>
  565. <tr><td><samp>form-&gt;h</samp> </td><td>Űrlapelem igényelt magasság </td></tr>
  566. <tr><td><samp>form-&gt;m</samp> </td><td>Űrlapelem margó </td></tr>
  567. <tr><td><samp>form-&gt;p</samp> </td><td>Űrlapelem eltartás (csak tárolóknál) </td></tr></table></div>
  568. <h2 id="mezo_jelzok">Mező jelzők<a href="#mezo_jelzok"></a></h2>
  569. <p>Ezek szabályozzák, hogy egy űrlapelem mező hogyan jelenik meg.</p>
  570. <ul><li><samp>UI_HIDDEN</samp> nem látszik, nem befolyásolja a normál folyamot</li>
  571. <li><samp>UI_NOBULLET</samp> csak <a href="#kapcsolo" onclick="c('kapcsolo')">kapcsoló</a>, <a href="#pipa" onclick="c('pipa')">pipa</a> és <a href="#valaszto" onclick="c('valaszto')">választó</a>, csak a címkét jelenítsék meg</li>
  572. <li><samp>UI_NOHEADER</samp> csak <a href="#tablazat" onclick="c('tablazat')">táblázat</a> és rács, ne rajzolja ki a fejlécet</li>
  573. <li><samp>UI_NOBR</samp> a következő mezőt ugyanebbe a sorba kényszeríti, nincs sortörés</li>
  574. <li><samp>UI_FORCEBR</samp> ellenkező, a következő mező mindenképp új sorba kerül</li>
  575. <li><samp>UI_ALTSKIN</samp> olyan mezők esetén, amik több bőrt is támogatnak (pl. tab menü helyett)</li>
  576. <li><samp>UI_NOBORDER</samp> tárolóknál, ne jelenjen meg a keret</li>
  577. <li><samp>UI_NOSHADOW</samp> felugróknál, ne legyen árnyékuk</li>
  578. <li><samp>UI_HSCROLL</samp> tárolóknál, jelenljen meg vízszintes szkrollozó</li>
  579. <li><samp>UI_VSCROLL</samp> tárolóknál, jelenljen meg függőleges szkrollozó</li>
  580. <li><samp>UI_SCROLL</samp> ugyanaz, mint az <samp>UI_HSCROLL</samp> + <samp>UI_VSCROLL</samp></li>
  581. <li><samp>UI_DRAGGABLE</samp> felugróknál, engedélyezi, hogy a felhasználó átmozgassa</li>
  582. <li><samp>UI_RESIZABLE</samp> felugróknál, engedélyezi, hogy a felhasználó átméretezze</li>
  583. <li><samp>UI_SELECTED</samp> a beviteli mezőt kiválasztottként jeleníti meg</li>
  584. <li><samp>UI_DISABLED</samp> inaktívvá teszi a mezőt, más a megjelenése és nem kattintható</li></ul>
  585. <h2 id="pozicionalas">Pozícionálás<a href="#pozicionalas"></a></h2>
  586. <p>Az SMGUI nem használja a szokásos pakolt sor / oszlop / négyzetrács elrendezést, helyette HTML-szerű flexibilis folyamot
  587. alkalmaz. A koordináták megadhatók a <samp>form-&gt;x</samp> és <samp>form-&gt;y</samp> mezőkben háromféleképp: relatív, abszolút és százalékban.</p>
  588. <ul><li>Relatív pozícionálás az alapértelmezett, de használható az <samp>UI_REL()</samp> makró is. Az így pozícionált mezők befolyásolják a folyamot.</li>
  589. <li>Abszolút pozícionáláshoz az <samp>UI_ABS()</samp> makrót kell használni. Megváltoztatható a gravitáció is, <samp>UI_ABS_RIGHT()</samp> (jobbról) vagy <samp>UI_ABS_BOTTOM()</samp> (alulról) a szülő tároló jobb oldalától vagy aljától számítódik. A normál folyamon kívüli.</li>
  590. <li>Százalékhoz az <samp>UI_PERCENT()</samp> makró használatos. Ez a szülő tároló méretéhez képest határozza meg a pozíciót. A normál folyamon kívüli.</li>
  591. <li>Százalék plusz valamennyi pixelhez az <samp>UI_PERPLUS()</samp> makrót kell használni.</li></ul>
  592. <p>Ha a <samp>form-&gt;w</samp> és <samp>form-&gt;h</samp> nincs megadva és 0, akkor a mező szélessége és magassága automatikusan számítódik. Ha az <samp>UI_ABS()</samp>
  593. makrót használjuk ezekre, akkor az a szülő tároló szélessége (vagy magassága) mínusz a megadott érték pixelben lesz a szélesség
  594. (vagy magasság).</p>
  595. <p>Használható a <samp>form-&gt;align</samp> a megadott x, y koordinátákhoz való igazításhoz. Ez egy VAGY-olt bitmaszk.</p>
  596. <ul><li><samp>UI_LEFT</samp> a mezőt úgy helyezi, hogy a <samp>form-&gt;x</samp> balra van (alapértelmezett)</li>
  597. <li><samp>UI_RIGHT</samp> a mezőt úgy helyezi, hogy a <samp>form-&gt;x</samp> jobbra van</li>
  598. <li><samp>UI_CENTER</samp> a mezőt úgy helyezi, hogy a <samp>form-&gt;x</samp> középre kerül</li>
  599. <li><samp>UI_TOP</samp> a mezőt úgy helyezi, hogy a <samp>form-&gt;y</samp> felülre kerül (alapértelmezett)</li>
  600. <li><samp>UI_BOTTOM</samp> a mezőt úgy helyezi, hogy a <samp>form-&gt;y</samp> alulra kerül</li>
  601. <li><samp>UI_MIDDLE</samp> a mezőt úgy helyezi, hogy a <samp>form-&gt;y</samp> középre kerül</li></ul>
  602. <p>Példák:</p>
  603. <div class="pre"><pre class="lineno">1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br>11<br>12<br>13<br>14<br>15<br>16<br>17<br>18<br></pre><code><span class="hl_v">ui_form_t</span> <span class="hl_v">form</span>[] <span class="hl_o">=</span> {
  604. <span class="hl_c">/* ezek szorosan egymás mellé kerülnek, balról jobbra,
  605. * csak akkor új sorba, ha muszáj */</span>
  606. { <span class="hl_o">.</span><span class="hl_v">type</span> <span class="hl_o">=</span> <span class="hl_v">UI_LABEL</span>, <span class="hl_o">.</span><span class="hl_v">label</span> <span class="hl_o">=</span> <span class="hl_n">1</span> },
  607. { <span class="hl_o">.</span><span class="hl_v">type</span> <span class="hl_o">=</span> <span class="hl_v">UI_LABEL</span>, <span class="hl_o">.</span><span class="hl_v">label</span> <span class="hl_o">=</span> <span class="hl_n">1</span> },
  608. <span class="hl_c">/* ezek szintén egymás mellé kerülnek, de eltartással */</span>
  609. { <span class="hl_o">.</span><span class="hl_v">type</span> <span class="hl_o">=</span> <span class="hl_v">UI_LABEL</span>, <span class="hl_o">.</span><span class="hl_v">x</span> <span class="hl_o">=</span> <span class="hl_f">UI_REL</span>(<span class="hl_n">10</span>), <span class="hl_o">.</span><span class="hl_v">label</span> <span class="hl_o">=</span> <span class="hl_n">1</span> },
  610. <span class="hl_c">/* ez abszolút pozícióra kerül */</span>
  611. { <span class="hl_o">.</span><span class="hl_v">type</span> <span class="hl_o">=</span> <span class="hl_v">UI_LABEL</span>, <span class="hl_o">.</span><span class="hl_v">x</span> <span class="hl_o">=</span> <span class="hl_f">UI_ABS</span>(<span class="hl_n">100</span>), <span class="hl_o">.</span><span class="hl_v">y</span> <span class="hl_o">=</span> <span class="hl_f">UI_ABS</span>(<span class="hl_n">100</span>), <span class="hl_o">.</span><span class="hl_v">label</span> <span class="hl_o">=</span> <span class="hl_n">1</span> },
  612. <span class="hl_c">/* ez az ablak közepére kerül */</span>
  613. { <span class="hl_o">.</span><span class="hl_v">type</span> <span class="hl_o">=</span> <span class="hl_v">UI_LABEL</span>, <span class="hl_o">.</span><span class="hl_v">align</span> <span class="hl_o">=</span> <span class="hl_v">UI_CENTER</span> <span class="hl_o">|</span> <span class="hl_v">UI_MIDDLE</span>,
  614. <span class="hl_o">.</span><span class="hl_v">x</span> <span class="hl_o">=</span> <span class="hl_f">UI_PERCENT</span>(<span class="hl_n">50</span>), <span class="hl_o">.</span><span class="hl_v">y</span> <span class="hl_o">=</span> <span class="hl_f">UI_PERCENT</span>(<span class="hl_n">50</span>), <span class="hl_o">.</span><span class="hl_v">label</span> <span class="hl_o">=</span> <span class="hl_n">1</span> },
  615. <span class="hl_c">/* ez ablak szélesség - 20 és ablak magasság - 20 méretű lesz */</span>
  616. { <span class="hl_o">.</span><span class="hl_v">type</span> <span class="hl_o">=</span> <span class="hl_v">UI_POPUP</span>, <span class="hl_o">.</span><span class="hl_v">x</span> <span class="hl_o">=</span> <span class="hl_f">UI_ABS</span>(<span class="hl_n">10</span>), <span class="hl_o">.</span><span class="hl_v">y</span> <span class="hl_o">=</span> <span class="hl_f">UI_ABS</span>(<span class="hl_n">10</span>),
  617. <span class="hl_o">.</span><span class="hl_v">w</span> <span class="hl_o">=</span> <span class="hl_f">UI_ABS</span>(<span class="hl_n">20</span>), <span class="hl_o">.</span><span class="hl_v">h</span> <span class="hl_o">=</span> <span class="hl_f">UI_ABS</span>(<span class="hl_n">20</span>), <span class="hl_o">.</span><span class="hl_v">ptr</span> <span class="hl_o">=</span> <span class="hl_o">&amp;</span><span class="hl_v">popupform</span> },
  618. <span class="hl_c">/* fontos, hogy zárjuk a listát */</span>
  619. { <span class="hl_o">.</span><span class="hl_v">type</span> <span class="hl_o">=</span> <span class="hl_v">UI_END</span> }
  620. };</code></div>
  621. <h2 id="tobbszalusag">Többszálúság<a href="#tobbszalusag"></a></h2>
  622. <p>Mivel az űrlap csupán csak hivatkozik a változókra, ezért simán működik az, hogy az egyik szálon van megjelenítve az elrendezés
  623. és egy másik szálon történik a változók kezelése. Ugyanakkor ha magát az űrlapot szeretnénk dinamikusan változtatni egy másik
  624. szálból, akkor az a fejlesztő felelőssége, hogy ilyenkor megfelelően szemaforokkal védje az űrlapját. Például:</p>
  625. <div class="pre"><pre class="lineno">1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br>11<br>12<br>13<br>14<br></pre><code><span class="hl_v">ui_form_t</span> <span class="hl_v">form</span>[];
  626. <span class="hl_c">/* ez a funkció bármelyik szálról hívható */</span>
  627. <span class="hl_t">void</span> <span class="hl_f">regenerate_form</span>()
  628. {
  629. <span class="hl_f">mutex_lock</span>(<span class="hl_o">&amp;</span><span class="hl_v">my_form_mutex</span>);
  630. <span class="hl_c">/* itt lehet módosítani a form[] tömböt */</span>
  631. <span class="hl_f">mutex_unlock</span>(<span class="hl_o">&amp;</span><span class="hl_v">my_form_mutex</span>);
  632. }
  633. <span class="hl_c">/* ez pedig a fő szálon a fő ciklusban */</span>
  634. <span class="hl_f">mutex_lock</span>(<span class="hl_o">&amp;</span><span class="hl_v">my_form_mutex</span>);
  635. <span class="hl_v">evt</span> <span class="hl_o">=</span> <span class="hl_f">ui_event</span>(<span class="hl_o">&amp;</span><span class="hl_v">ctx</span>, <span class="hl_v">form</span>);
  636. <span class="hl_f">mutex_unlock</span>(<span class="hl_o">&amp;</span><span class="hl_v">my_form_mutex</span>);</code></div>
  637. <p>Mivel az SMGUI maga semmilyen threading függvénykönyvtárat nem használ, ezért bármelyik threading és mutex implementáció
  638. használható vele. Az SDL motor például biztosít egy <samp>SDL_Mutex</samp> típust, GLFW esetén meg használható a pthread függvénykönyvtár.</p>
  639. <h2 id="ujrarajzolas">Újrarajzolás<a href="#ujrarajzolas"></a></h2>
  640. <p>Az újrarajzolás az <a href="#esemenykezeles" onclick="c('esemenykezeles')">eseménykezelés</a> hívásakor automatikusan megtörténik, ha szükség van rá, és ennyi. De ha valamelyik hivatkozott
  641. változó az UI látókörén kívül módosul, akkor szükséges a következő függvény hívása:</p>
  642. <div class="pre"><pre class="lineno">1<br></pre><code><span class="hl_t">int</span> <span class="hl_f">ui_refresh</span>(<span class="hl_v">ui_t</span> <span class="hl_o">*</span><span class="hl_v">ctx</span>);</code></div>
  643. <p>Jelzi az UI-nak, hogy szükség van az újrarajzolásra.</p>
  644. <div class="table"><table><tr><th>Paraméter </th><th>Leírás </th></tr>
  645. <tr><td><samp>ctx</samp> </td><td>Mutató az UI kontextusra </td></tr></table></div>
  646. <p>Siker esetén 0-val tér vissza, egyébként hibakóddal.</p><br style="clear:both;"><label class="btn prev" accesskey="p" for="_vagolap" title="Vágólap">Előző</label><label class="btn next" accesskey="n" for="_tarolok" title="Tárolók">Következő</label></div>
  647. <div class="page" rel="tarolok"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Főoldal"></label>&nbsp;»</li><li>&nbsp;Tárolók</li></ul><hr></div>
  648. <h1 id="tarolok">Tárolók<a href="#tarolok"></a></h1>
  649. <p>Ha egy tárolót egy <a href="#kapcsolo" onclick="c('kapcsolo')">kapcsoló</a> mező előz meg, akkor az a kapcsoló ennek a tárolónak a láthatóságát fogja kapcsolni.</p>
  650. <h2 id="felugro">Felugró<a href="#felugro"></a></h2>
  651. <img class="imgl" width="40" height="31" alt="ui_popup.png" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAfCAYAAACVgY94AAAAuklEQVRYw+3X0QnEIAwG4Hi4iBPEiZyls7mAyQaO4Aa9lxMKp54cV81B/qealvoRS6AmhHCCkOScIcZorjVbb0hIKeWtZuuF9/6WTYlo6t1E1Kw/QHjsys2YGRCxu37l2NZBRARmHuH2H3FFzuC2ACuudlIU8Nq5WeTyb3C0/u8x0xuUvxrW30Z8BxWoQAUqUIFC4pyTC+zhRABHuO3AT7itwBkcAIDNOTd/mO9OSmnqOdOoHTpmFLgwT81vPn3xojzHAAAAAElFTkSuQmCC">
  652. <p>Kirajzol egy felugrót.</p>
  653. <div class="table"><table><tr><th>Paraméter </th><th>Leírás </th></tr>
  654. <tr><td><samp>form-&gt;type</samp> </td><td><samp>UI_POPUP</samp> </td></tr>
  655. <tr><td><samp>form-&gt;flags</samp> </td><td>Esetleg <samp>UI_HIDDEN</samp>, <samp>UI_DRAGGABLE</samp> vagy <samp>UI_RESIZABLE</samp> </td></tr>
  656. <tr><td><samp>form-&gt;ptr</samp> </td><td>Mutató egy másik <samp>ui_form_t</samp> bufferre </td></tr>
  657. <tr><td><samp>form-&gt;m</samp> </td><td>Margó pixelekben </td></tr>
  658. <tr><td><samp>form-&gt;p</samp> </td><td>Eltartás pixelekben </td></tr>
  659. <tr><td><samp>form-&gt;label</samp> </td><td>Cím, lokalizált sztringtömb index (vagy 0) </td></tr></table></div>
  660. <h2 id="menu">Menü<a href="#menu"></a></h2>
  661. <img class="imgl" width="40" height="31" alt="ui_menu.png" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAfCAYAAACVgY94AAAAYUlEQVRYw+3XsQnAQAxD0XO4OT1LZvMkGsEbJFUgkMClCaj4Ku3mgSpFZh7DJJJGVcX9Nq+HQ7r7cduGeeyB09C0UzFAgAABAgQIECBAgAABfl11kl4Hs0tiNfuoGODPOQHi4RMjCDG2swAAAABJRU5ErkJggg==">
  662. <p>Ugyanaz, mint a felugró, de alapból <samp>UI_HIDDEN</samp>, azaz elrejtett és egyszerre csak egy menü lehet megjelenítve. A gyerek
  663. <a href="#pipa" onclick="c('pipa')">pipa</a> és <a href="#valaszto" onclick="c('valaszto')">választó</a> mezői ki lesznek emelve, amikor az egér föléjük kerül.</p>
  664. <div class="table"><table><tr><th>Paraméter </th><th>Leírás </th></tr>
  665. <tr><td><samp>form-&gt;type</samp> </td><td><samp>UI_MENU</samp> </td></tr>
  666. <tr><td><samp>form-&gt;flags</samp> </td><td>Esetleg <samp>UI_SCROLL</samp> </td></tr>
  667. <tr><td><samp>form-&gt;ptr</samp> </td><td>Mutató egy másik <samp>ui_form_t</samp> bufferre </td></tr>
  668. <tr><td><samp>form-&gt;m</samp> </td><td>Margó pixelekben </td></tr>
  669. <tr><td><samp>form-&gt;p</samp> </td><td>Eltartás pixelekben </td></tr></table></div>
  670. <h2 id="divizio">Divízió<a href="#divizio"></a></h2>
  671. <p>Nem rajzol ki semmit, csak csoportosíthatóvá teszi a mezőket, hogy egyszerre lehessen őket megjeleníteni / elrejteni meg
  672. pozícionálni.</p>
  673. <div class="table"><table><tr><th>Paraméter </th><th>Leírás </th></tr>
  674. <tr><td><samp>form-&gt;type</samp> </td><td><samp>UI_DIV</samp> </td></tr>
  675. <tr><td><samp>form-&gt;flags</samp> </td><td>Esetleg <samp>UI_SCROLL</samp> </td></tr>
  676. <tr><td><samp>form-&gt;ptr</samp> </td><td>Mutató egy másik <samp>ui_form_t</samp> bufferre </td></tr>
  677. <tr><td><samp>form-&gt;m</samp> </td><td>Margó pixelekben </td></tr>
  678. <tr><td><samp>form-&gt;p</samp> </td><td>Eltartás pixelekben </td></tr></table></div>
  679. <h2 id="tablazat">Táblázat<a href="#tablazat"></a></h2>
  680. <p>Adatmezőket rajzol ki táblázat vagy rács formájában. Be kell húzni hozzá az <b>ui_table.h</b> modult.</p>
  681. <div class="table"><table><tr><th>Paraméter </th><th>Leírás </th></tr>
  682. <tr><td><samp>form-&gt;type</samp> </td><td><samp>UI_TABLE</samp> </td></tr>
  683. <tr><td><samp>form-&gt;flags</samp> </td><td>Esetleg <samp>UI_SCROLL</samp> vagy <samp>UI_NOHEADER</samp> </td></tr>
  684. <tr><td><samp>form-&gt;ptr</samp> </td><td>Mutató az adatokra </td></tr>
  685. <tr><td><samp>form-&gt;tblsel</samp> </td><td>A kiválasztott adatrekord indexe </td></tr>
  686. <tr><td><samp>form-&gt;tblnum</samp> </td><td>Adatrekordok száma </td></tr>
  687. <tr><td><samp>form-&gt;tblsiz</samp> </td><td>Egy adatrekord mérete bájtokban </td></tr>
  688. <tr><td><samp>form-&gt;tblrow</samp> </td><td>Sor mérete pixelekben </td></tr>
  689. <tr><td><samp>form-&gt;tblcol</samp> </td><td>Oszlop mérete pixelekben (rács esetén, egyébként 0) </td></tr>
  690. <tr><td><samp>form-&gt;data</samp> </td><td>Mutató az <samp>ui_form_t</samp> fejléclistára </td></tr>
  691. <tr><td><samp>form-&gt;cmps</samp> </td><td>Összehasonlító függvények rendezéshez (vagy NULL) </td></tr>
  692. <tr><td><samp>form-&gt;m</samp> </td><td>Cellamargó pixelekben </td></tr></table></div>
  693. <p>A <samp>form-&gt;ptr</samp> mutat az adatrekordokra, ami táblázat esetén valószínűleg egy struktúrákat tartalmazó tömb. A <samp>form-&gt;data</samp>
  694. listának legalább egy UI mezőt kell tartalmaznia, és <i>MINDIG</i> egy <samp>UI_END</samp> mezővel kell lezárni. Ez tárolja a <samp>hdr</samp>
  695. fejléceket, valamint megadja az adott oszlop megjelenítését. Táblázathoz a <samp>form-&gt;tblcol</samp> értékét 0-ára kell állítani, és
  696. ilyenkor valószínűleg a <samp>form-&gt;data</samp> több fejlécet fog tartalmazni. Rács esetén a <samp>form-&gt;tblcol</samp> nem nulla és ilyenkor
  697. egységesen minden cellához az első <samp>form-&gt;data</samp> fejléc használatos.</p>
  698. <div class="table"><table><tr><th>Paraméter </th><th>Leírás </th></tr>
  699. <tr><td><samp>hdr-&gt;type</samp> </td><td>A cella megjelenítésének típusa </td></tr>
  700. <tr><td><samp>hdr-&gt;tblhdr</samp> </td><td>Fejléc cím, lokalizált sztringtömb index </td></tr>
  701. <tr><td><samp>hdr-&gt;tblofs</samp> </td><td>A mező adatrekordon belüli címe (csak táblázat esetén) </td></tr>
  702. <tr><td><samp>hdr-&gt;flags</samp> </td><td><samp>UI_POINTER</samp>, ha az oszlop mezője egy mutató </td></tr>
  703. <tr><td><samp>hdr-&gt;w</samp> </td><td>Oszlop szélessége, használható <samp>UI_PERCENT</samp> </td></tr></table></div>
  704. <p>A rendezés engedélyezéséhez kétszer annyi komparátor funkciót kell megadni, mint ahány fejlécmező van. Oszloponként az
  705. első a növekvő, a második a csökkenő sorrendért felel.</p>
  706. <div class="pre"><pre class="lineno">1<br></pre><code><span class="hl_t">typedef</span> <span class="hl_t">int</span> (<span class="hl_o">*</span><span class="hl_f">ui_comp</span>)(<span class="hl_v">const</span> <span class="hl_t">void</span> <span class="hl_o">*</span><span class="hl_v">a</span>, <span class="hl_v">const</span> <span class="hl_t">void</span> <span class="hl_o">*</span><span class="hl_v">b</span>);</code></div>
  707. <p>A prototípusuk a szabványos POSIX komparátoré, a libc <samp>qsort()</samp> gyorsrendezés függvényének adódnak át paraméterül.</p><br style="clear:both;"><label class="btn prev" accesskey="p" for="_elrendezes" title="Elrendezés">Előző</label><label class="btn next" accesskey="n" for="_cimkek" title="Cimkék">Következő</label></div>
  708. <div class="page" rel="cimkek"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Főoldal"></label>&nbsp;»</li><li>&nbsp;Cimkék</li></ul><hr></div>
  709. <h1 id="cimkek">Cimkék<a href="#cimkek"></a></h1>
  710. <h2 id="cimke">Cimke<a href="#cimke"></a></h2>
  711. <img class="imgl" width="48" height="19" alt="ui_label.png" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAATAQMAAADs9BxcAAAABlBMVEUAAAD///+l2Z/dAAAAOUlEQVQI12NgIAz4mYBEAgMbG5B6AKYYgZR8+/EEkCBP+gcQxf9sA5jHhkydSQNS/Mztxwx/4LMAAGNjD5BvmPyHAAAAAElFTkSuQmCC">
  712. <p>Kirajzol egy szöveg cimkét. Ha a <samp>form-&gt;label</samp> 0, akkor a <samp>form-&gt;ptr</samp> egy nullával lezárt UTF-8 sztringre kell mutasson.</p>
  713. <div class="table"><table><tr><th>Paraméter </th><th>Leírás </th></tr>
  714. <tr><td><samp>form-&gt;type</samp> </td><td><samp>UI_LABEL</samp> </td></tr>
  715. <tr><td><samp>form-&gt;label</samp> </td><td>Lokalizált sztringtömb indexe (vagy 0) </td></tr>
  716. <tr><td><samp>form-&gt;ptr</samp> </td><td>Csak ha <samp>label</samp> 0, mutató egy sztringre </td></tr></table></div>
  717. <h2 id="statusz">Státusz<a href="#statusz"></a></h2>
  718. <img class="imgl" width="48" height="19" alt="ui_label.png" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAATAQMAAADs9BxcAAAABlBMVEUAAAD///+l2Z/dAAAAOUlEQVQI12NgIAz4mYBEAgMbG5B6AKYYgZR8+/EEkCBP+gcQxf9sA5jHhkydSQNS/Mztxwx/4LMAAGNjD5BvmPyHAAAAAElFTkSuQmCC">
  719. <p>Kirajzol egy szöveg cimkét. Ugyanaz, mint az <samp>UI_LABEL</samp>, csak <samp>form-&gt;label</samp> helyett annak a mezőnek a <samp>form-&gt;desc</samp> értékét
  720. használja, ami fölött az egér tartózkodik. Ha ez 0, akkor a <samp>form-&gt;ptr</samp> egy nullával lezárt UTF-8 sztringre kell mutasson.</p>
  721. <div class="table"><table><tr><th>Paraméter </th><th>Leírás </th></tr>
  722. <tr><td><samp>form-&gt;type</samp> </td><td><samp>UI_STATUS</samp> </td></tr>
  723. <tr><td><samp>form-&gt;ptr</samp> </td><td>Csak ha <samp>hover-&gt;desc</samp> 0, mutató egy sztringre </td></tr>
  724. <tr><td><samp>hover-&gt;desc</samp> </td><td>Lokalizált sztringtömb indexe (vagy 0) </td></tr></table></div>
  725. <h2 id="decimalis">Decimális<a href="#decimalis"></a></h2>
  726. <img class="imgl" width="48" height="19" alt="ui_dec.png" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAATAQMAAADs9BxcAAAABlBMVEUAAAD///+l2Z/dAAAAKUlEQVQI12NgIAowfjAAUcwSBWCuxAcIBRZkgMjBeCgUM4Ri/PAHn+kAsxwHLTWt8L4AAAAASUVORK5CYII=">
  727. <p>Kirajzol egy értéket tízes számrendszerben. A szám a define végén jelzi, hogy hány biten tárolódik az érték.</p>
  728. <div class="table"><table><tr><th>Paraméter </th><th>Leírás </th></tr>
  729. <tr><td><samp>form-&gt;type</samp> </td><td><samp>UI_DEC8</samp> / <samp>UI_DEC16</samp> / <samp>UI_DEC32</samp> / <samp>UI_DEC64</samp> </td></tr>
  730. <tr><td><samp>form-&gt;ptr</samp> </td><td>Mutató az értékre </td></tr></table></div>
  731. <h2 id="hexadecimalis">Hexadecimális<a href="#hexadecimalis"></a></h2>
  732. <img class="imgl" width="48" height="19" alt="ui_hex.png" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAATAQMAAADs9BxcAAAABlBMVEUAAAD///+l2Z/dAAAAKUlEQVQI12NgIA4ceAAiGQ9uAFHMByeABQ82gKnDB5B52CjmzwfwGQ4AVQ4N5XDbuLQAAAAASUVORK5CYII=">
  733. <p>Kirajzol egy értéket tizenhatos számrendszerben. A szám a define végén jelzi, hogy hány biten tárolódik az érték.</p>
  734. <div class="table"><table><tr><th>Paraméter </th><th>Leírás </th></tr>
  735. <tr><td><samp>form-&gt;type</samp> </td><td><samp>UI_HEX8</samp> / <samp>UI_HEX16</samp> / <samp>UI_HEX32</samp> / <samp>UI_HEX64</samp> </td></tr>
  736. <tr><td><samp>form-&gt;ptr</samp> </td><td>Mutató az értékre </td></tr></table></div>
  737. <h2 id="folyamatjelzo">Folyamatjelző<a href="#folyamatjelzo"></a></h2>
  738. <img class="imgl" width="66" height="24" alt="ui_pbar.png" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEIAAAAYBAMAAAC8bzZKAAAAGFBMVEUAAAAAAF4AAH4AAK0eHh4uLi5eXl7///+0lNv+AAAAnklEQVQoz73SQQrDIBAF0Kyy7xE6G/ftFULdhoZeoQcQ4V+/f9TiaIMECvkxbnzojDhN5+Q1zEqx3WtuS5+HCqm5DgQ4ELLw2BEO4oIgC/j4K4A0J8F18FuiFS4gzVb4RkDr4F9E1ELQnAJWqYUYUWppexGpp5QtGsEtjPi20wn2oiswxtxHcCwmC59a7cSBW/9PPC8mu2J+D3PSO/4AcAiTNmDMxCEAAAAASUVORK5CYII=">
  739. <p>Kirajzol egy 64 bites egész számot folyamatjelzőként.</p>
  740. <div class="table"><table><tr><th>Paraméter </th><th>Leírás </th></tr>
  741. <tr><td><samp>form-&gt;type</samp> </td><td><samp>UI_PBAR</samp> </td></tr>
  742. <tr><td><samp>form-&gt;ptr</samp> </td><td>Mutató egy int64 értékre </td></tr>
  743. <tr><td><samp>form-&gt;max</samp> </td><td>Teljes érték </td></tr></table></div>
  744. <h2 id="lebegopontos">Lebegőpontos<a href="#lebegopontos"></a></h2>
  745. <img class="imgl" width="48" height="19" alt="ui_dec_float.png" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAATAQMAAADs9BxcAAAABlBMVEUAAAD///+l2Z/dAAAAQElEQVQI12NgIALwNzAcMGBgkDjAeKAAyD3AfOADiGI4uIGBgb2B4bABmHf4B5g6YACnJA42gCj+xuYPFfjMBwDUaBRG4IU5mAAAAABJRU5ErkJggg==">
  746. <p>Kirajzol egy lebegőpontos értéket.</p>
  747. <div class="table"><table><tr><th>Paraméter </th><th>Leírás </th></tr>
  748. <tr><td><samp>form-&gt;type</samp> </td><td><samp>UI_DEC_FLOAT</samp> </td></tr>
  749. <tr><td><samp>form-&gt;ptr</samp> </td><td>Mutató az értékre </td></tr></table></div>
  750. <h2 id="kep">Kép<a href="#kep"></a></h2>
  751. <img class="imgl" width="23" height="24" alt="ui_image.png" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABcAAAAYCAMAAAAmopZHAAAC/VBMVEUAAAAFAAAAAgAVBQAQBwAUDQMjEQApEwAqFAArFAAnFgguFwAuGwApHAcxHQA4HwMxIgJAJgZBJwdELxpIOSF/RgCBRwB8SRGMSwCUVxyaVw2cWAOYWg2ZWw+aXAOaXBChXQmEYz2fYACTZhKiYwCTZDakZAGlZQKmZgSsZQmnZwWqagu3aQCobQurayGhbiaobimicwupbyqjdA2bdFqqdSafdlfIcQCbe0Cxexu8fQjJeBvPdxPReASLhH7LehLSeQbOfAShgnDPfQbHfS+6gyzEhAK1iRvRfyzdggXPgy3egwfEhzq1jx/ghAnhhQDCjgnDjwDShjjHjQ7GiUOoj3vLkACfko3hiwDijADeiiezmCXniwHojAPjjRTZjT7mjwO8myDjkgPJmgnLmwvOngDcmRjanASsnpndmhnRoADwlwDrmgDunAHQpQXloADknxLvnQTloBTwngfmoRbzoADyoAvuogrpoxn/nwLLrR7KrSnwpCvupw+zrabOsCLzphP1pwDoqR39oxi8rKH1pxXpqh/Isj74pS/5qwburhbYtDTrsRf8rQ3srkn9rxD/sBPmtEL6shH8sxP9sED+tRfquE7FvK/+vB3Ewcb/vR//vCv/viH9wS7Nxr//xCb9xiXRycLrzyL/ySn/yTX9zCru0ifUzcX/zzj/0C7/0Dn80i390yH/0Ev/0U3+1DD/1ST22SL91EX81E361zHc1M382DL92Sf/1k/92TP/2ij63Cf/11n/2yr+12D83ir/3EL+3FP+3Fvi29T/4S/Z3uH93mvj3dzb3+Ld39zc4OP05lb+41f941/+5zP151je4+X95G/851H/6TX/6UD86zX87EH96WP+7Tfq5eT77FT96mz96nP87VX/6YH+7k388kX+8Gj97ov/8Wn782H98Jr99WP79nP893T793v+9ZD++G36+Ir8+IP/9pH/+W7/9az796X/9qb/+Jn8+Kb9+af/+aH8+a78+rX7+739+7b6/MP9+9H9/Nj+/dnCdRsJAAAB3UlEQVQoz2Ngwg4YoDSrgMW0idMsBFhRxZVTVtz7+OHjo3Upykji/H0rnv75++/v379/Pq3o44eKM/JVHPry49fP379///zx4/uxfB5GsLhIzdpX7z5//vb169dvnz+/e7WvRgQkzqg3++Kd5y/fvn375u3bly+f374zW48RKM47ZfPZ6w9fv3/x8uXLF+8fP7x+dk8HF1Ccs3nTjjO3znc/efbs2d3285fOHNxcyQkUN+pdsunAFUOx6gcP7kdL+F47sGnJBAOguGPv3JXbjhgqVd84dzVRxf3c+pVzex2B4g69sxas3LWoaveRI0c21i/btXLBrF5boLht44z5i9ds2LVr134g3rBm8fxZnQ5AcfPSqU09q7dt2wkE2zZsW9rVNrXUHCjukj3ZNdzMMjArLy8vNcDUxC54UqE1UFwwpjNs5olTF5bPmzdv+YUTJ+rSG2IFgeLMOjm1qqEtCw8fv3ly6/QMJ/3enCg2UPiIepanySlIy8rKy0pJq2mUFHpLQsLZI7IwTUlDW0MDiNWKCuO8hCHhzGkTkVtkpauhpKHr1pobZ8/JCI0XznjvpNyyooKissIk7yBueHwxMolrevsnJMT6e2uKA3lI8c7CqRjiE6LIyYKWHtABAHI8zlZkUGOOAAAAAElFTkSuQmCC">
  752. <p>Kirajzol egy ikont képpel. Ha a <samp>form-&gt;ptr</samp> nem NULL, akkor kattintható és úgy viselkedik, mint egy <a href="#gomb" onclick="c('gomb')">gomb</a>.</p>
  753. <div class="table"><table><tr><th>Paraméter </th><th>Leírás </th></tr>
  754. <tr><td><samp>form-&gt;type</samp> </td><td><samp>UI_IMAGE</samp> </td></tr>
  755. <tr><td><samp>form-&gt;icon</samp> </td><td>Mutató egy <samp>ui_image_t</samp> struct-ra </td></tr>
  756. <tr><td><samp>form-&gt;ptr</samp> </td><td>Mutató az int értékre (vagy NULL) </td></tr>
  757. <tr><td><samp>form-&gt;value</samp> </td><td>A cimke int értéke </td></tr></table></div>
  758. <p>Az <samp>ui_image_t</samp> képstruktúra pedig a következő:</p>
  759. <div class="table"><table><tr><th>Mező </th><th>Leírás </th></tr>
  760. <tr><td><samp>w</samp> </td><td>Szélesség pixelekben </td></tr>
  761. <tr><td><samp>h</samp> </td><td>Magasság pixelekben </td></tr>
  762. <tr><td><samp>p</samp> </td><td>Rasztersor bájtokban (legalább w * 4) </td></tr>
  763. <tr><td><samp>buf</samp> </td><td>Pixelbuffer 32 bites RGBA színkódokkal </td></tr></table></div><br style="clear:both;"><label class="btn prev" accesskey="p" for="_tarolok" title="Tárolók">Előző</label><label class="btn next" accesskey="n" for="_bevitel" title="Bevitel">Következő</label></div>
  764. <div class="page" rel="bevitel"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Főoldal"></label>&nbsp;»</li><li>&nbsp;Bevitel</li></ul><hr></div>
  765. <h1 id="bevitel">Bevitel<a href="#bevitel"></a></h1>
  766. <h2 id="szoveg">Szöveg<a href="#szoveg"></a></h2>
  767. <img class="imgl" width="161" height="20" alt="ui_text.png" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKEAAAAUAgMAAACYOLXjAAAADFBMVEUeHh4uLi5eXl7AwMB3Lt90AAAAvklEQVQoz73SwQ3CMAwFUEse4O/BlaulsAT7dB6msNQBukqkXi0ZO6QFBIhcwJc27VPtn5TOg0V0orGafiPtcc36/B63S2lSBiRe5YfapOtaYVjykYqx86xWo4FH2xI35GQpWWsRAVyzOwCeZ/UYH7GiGj15Ye1SpDiOXbLGN1dpQ4fMTrhLEtolWZdk3yQ2ibcSu2xzptzn7NIju1Nkz71EbEJEttqCRHbN7LyqvZ4mhs99XBb95193uIzVdAUnAJPWDFHitgAAAABJRU5ErkJggg==">
  768. <p>Kirajzol egy szövegbeviteli mezőt. A bufferben egy nullával lezárt UTF-8 sztringnek kell lennie. Alapból bármilyen
  769. nem vezérlőkaraktert elfogad, de ez tovább szűkíthető: <samp>UI_FILTER_ID</samp> (egy UNIX azonosító), <samp>UI_FILTER_VAR</samp> (változónév,
  770. mint a UNIX azonosító, csak nem kezdődhet számmal), <samp>UI_FILTER_EXPR</samp> (kifejezés, mint a változó plusz zárójelek és
  771. operátorok), és <samp>UI_FILTER_HEX</samp> (csak a hexadecimálishoz szükséges 0-9A-F gombokat engedi). Az <samp>UI_FILTER_PASS</samp> nem a
  772. bementet, hanem a kimenetet szűri, csillagokat jelenít meg. Beillesztés is működik. Ha az <b>ui_textosk.h</b> modul be
  773. van húzva, akkor bevitelkor megjelenít szoftveresen egy billentyűzetet a képernyőn, egyébként az OS-specifikus OSK csak
  774. akkor jelenik meg, ha a platform támogatja azt.</p>
  775. <div class="table"><table><tr><th>Paraméter </th><th>Leírás </th></tr>
  776. <tr><td><samp>form-&gt;type</samp> </td><td><samp>UI_TEXT</samp> </td></tr>
  777. <tr><td><samp>form-&gt;ptr</samp> </td><td>Mutató a bufferre </td></tr>
  778. <tr><td><samp>form-&gt;max</samp> </td><td>A buffer mérete </td></tr>
  779. <tr><td><samp>form-&gt;inc</samp> </td><td>0 bármi, vagy valamelyik <samp>UI_FILTER_x</samp> filter </td></tr></table></div>
  780. <h2 id="valasztodoboz">Választódoboz<a href="#valasztodoboz"></a></h2>
  781. <img class="imgl" width="72" height="24" alt="ui_select.png" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAAAYBAMAAACrTaaDAAAAG1BMVEUAAAAeHh4fHx8uLi4vLy9GRkZeXl5fX1/AwMDtzPodAAAAb0lEQVQoz2NgoB4wJgQMgYoMBbEDsTQoCMOnKBQKzAatoo6ORsEOiQ5BMAOHIgmgEkGJRhAEMpAVhbi4uGAo6uhAU6SkpI7FJDQ3OSmVElYUok7YTaGhpSi+gyjB7bshFHeisJQJUgRPgTgBFfMKABq3e4922WHmAAAAAElFTkSuQmCC">
  782. <p>Kirajzol egy választódobozt. Ha rákattintanak, akkor az opciók egy felugróban jelennek meg.</p>
  783. <div class="table"><table><tr><th>Paraméter </th><th>Leírás </th></tr>
  784. <tr><td><samp>form-&gt;type</samp> </td><td><samp>UI_SELECT</samp> </td></tr>
  785. <tr><td><samp>form-&gt;ptr</samp> </td><td>Mutató az int értékre </td></tr>
  786. <tr><td><samp>form-&gt;optc</samp> </td><td>Maximum érték plusz 1, opciók száma </td></tr>
  787. <tr><td><samp>form-&gt;optv</samp> </td><td>Mutató egy sztringtömbre, opciók </td></tr>
  788. <tr><td><samp>form-&gt;m</samp> </td><td>Jobb margó </td></tr></table></div>
  789. <h2 id="opciolista">Opciólista<a href="#opciolista"></a></h2>
  790. <img class="imgl" width="92" height="24" alt="ui_option.png" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFwAAAAYBAMAAACFCIcRAAAAG1BMVEUAAAAeHh4fHx8uLi4vLy9GRkZeXl5fX1/AwMDtzPodAAAAmElEQVQ4y2NgoC0wJh4YApWbpUFBoCAOIAZTEQZSHgoFhjiVw1SYDUrlToSUqyArD1EHK+/oaBTskOgQBDNQlSu5Iil3AiuXACoWlGgEQSADTbkKQnmIEpryjg4M5UqlCNOVMExHdztYBUx5EGHlpcghQ9Dt6ljCHRQgEMUYITOIEwHxyk3heQWXclGYCpByeF4hAtC4HAAAsFCzh5Bm2IEAAAAASUVORK5CYII=">
  791. <p>Kirajzol egy opciólistát. Pont, mint a választódoboz, csak számbekérő megjelenéssel, nincs felugró.</p>
  792. <div class="table"><table><tr><th>Paraméter </th><th>Leírás </th></tr>
  793. <tr><td><samp>form-&gt;type</samp> </td><td><samp>UI_OPTION</samp> </td></tr>
  794. <tr><td><samp>form-&gt;ptr</samp> </td><td>Mutató az int értékre </td></tr>
  795. <tr><td><samp>form-&gt;optc</samp> </td><td>Maximum érték plusz 1, opciók száma </td></tr>
  796. <tr><td><samp>form-&gt;optv</samp> </td><td>Mutató egy sztringtömbre, opciók </td></tr>
  797. <tr><td><samp>form-&gt;m</samp> </td><td>Bal és jobb margó </td></tr></table></div>
  798. <h2 id="lebegopont">Lebegőpont<a href="#lebegopont"></a></h2>
  799. <img class="imgl" width="98" height="24" alt="ui_float.png" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGIAAAAYBAMAAADzMjWaAAAAG1BMVEUAAAAeHh4fHx8uLi4vLy9GRkZeXl5fX1/AwMDtzPodAAAAs0lEQVQ4y2NgoAcwJgkYAnWYpUFBoCBuIAZTFAbSEQoFhvh0wBSZUUOHREcHVJVEI5QAYnw6OiAqQaxGKNGBTYcTkqugOiRAikGEBFSHCrKOEHVMHWC6A8lVSq5IOpyQdCD7Q6IRWYcKQkeIEg47gMHQgdChVIqwA5cOlLACK4LpCCJKRylyWKmjhW4HFh3qeGOwA8xoBIcDiEHdVDJIdJjCsxceHaIwRSAd8OxFHKBLSQIA8mzA3UyVUPEAAAAASUVORK5CYII=">
  800. <p>Kirajzol egy lebegőpontos számbeviteli mezőt.</p>
  801. <div class="table"><table><tr><th>Paraméter </th><th>Leírás </th></tr>
  802. <tr><td><samp>form-&gt;type</samp> </td><td><samp>UI_FLOAT</samp> </td></tr>
  803. <tr><td><samp>form-&gt;ptr</samp> </td><td>Mutató az értékre </td></tr>
  804. <tr><td><samp>form-&gt;fmin</samp> </td><td>Minimum érték </td></tr>
  805. <tr><td><samp>form-&gt;fmax</samp> </td><td>Maximum érték </td></tr>
  806. <tr><td><samp>form-&gt;finc</samp> </td><td>Léptetési érték </td></tr>
  807. <tr><td><samp>form-&gt;m</samp> </td><td>Bal és jobb margó </td></tr></table></div>
  808. <h2 id="egeszszam">Egészszám<a href="#egeszszam"></a></h2>
  809. <img class="imgl" width="62" height="24" alt="ui_int.png" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAD4AAAAYBAMAAABQGlNcAAAAG1BMVEUAAAAeHh4fHx8uLi4vLy9GRkZeXl5fX1/AwMDtzPodAAAAjklEQVQoz2NgoBQY4wGGQHmzNCgIFIQBMZhQGEg+FAoMEfIwITPS5Ds6GgUFJRpxyQNlOgQFO7DJO0HN7xCUgMqrIMuHqMPlYeYruSLJO0HkJZDsV1JByIcoYdGvVIrQj01eHcn8ICzypcjuV0f4DyqvjiN8JIAEueFLE3lTeGKBy4vChEDy8MSCDVCcegHJ4ZIZC8f3vAAAAABJRU5ErkJggg==">
  810. <p>Kirajzol egy egészszámbeviteli mezőt. A szám a define végén jelzi, hogy hány biten tárolódik az érték.</p>
  811. <div class="table"><table><tr><th>Paraméter </th><th>Leírás </th></tr>
  812. <tr><td><samp>form-&gt;type</samp> </td><td><samp>UI_INT8</samp> / <samp>UI_INT16</samp> / <samp>UI_INT32</samp> / <samp>UI_INT64</samp> </td></tr>
  813. <tr><td><samp>form-&gt;ptr</samp> </td><td>Mutató az értékre </td></tr>
  814. <tr><td><samp>form-&gt;min</samp> </td><td>Minimum érték </td></tr>
  815. <tr><td><samp>form-&gt;max</samp> </td><td>Maximum érték </td></tr>
  816. <tr><td><samp>form-&gt;inc</samp> </td><td>Léptetési érték </td></tr>
  817. <tr><td><samp>form-&gt;m</samp> </td><td>Bal és jobb margó </td></tr></table></div>
  818. <h2 id="csuszka">Csúszka<a href="#csuszka"></a></h2>
  819. <img class="imgl" width="141" height="15" alt="ui_slider.png" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAI0AAAAPBAMAAAArCFFFAAAAElBMVEUAAAAeHh42NjZeXl79/f3///8QGCJjAAAARElEQVQ4y2NgGCGANTSUKuaEhoYGkKVREAWIAs0JFSQRCIDMEXFBBq4gc5RIBMqD0RxmY2RgCjLHmFRAzfiiUfoZJgAAtkM6ZgnR4WUAAAAASUVORK5CYII=">
  820. <p>Kirajzol egy egészszámbeviteli mezőt csúszkaként (csak 32 bit).</p>
  821. <div class="table"><table><tr><th>Paraméter </th><th>Leírás </th></tr>
  822. <tr><td><samp>form-&gt;type</samp> </td><td><samp>UI_SLIDER</samp> </td></tr>
  823. <tr><td><samp>form-&gt;ptr</samp> </td><td>Mutató az értékre </td></tr>
  824. <tr><td><samp>form-&gt;min</samp> </td><td>Minimum érték </td></tr>
  825. <tr><td><samp>form-&gt;max</samp> </td><td>Maximum érték </td></tr>
  826. <tr><td><samp>form-&gt;inc</samp> </td><td>Léptetési érték </td></tr></table></div>
  827. <h2 id="fuggoleges_szkrollozo">Függőleges szkrollozó<a href="#fuggoleges_szkrollozo"></a></h2>
  828. <img class="imgl" width="14" height="44" alt="ui_vscrbar.png" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAsBAMAAACnApTfAAAAD1BMVEUAAAAPDw8eHh5GRkZeXl4bv8Y0AAAAJklEQVQY02NgQAeCIEBF2gUIHIC0s7GxsREdaSYlIKCBfwjRqAAAzmsYlwi8KXUAAAAASUVORK5CYII=">
  829. <p>Kirajzol egy függőleges szkroll mezőt (csak 32 bit). A <a href="#tarolok" onclick="c('tarolok')">tárolók</a> maguktól kezelik a szkrollozást, szóval
  830. ez bármi más esetre.</p>
  831. <div class="table"><table><tr><th>Paraméter </th><th>Leírás </th></tr>
  832. <tr><td><samp>form-&gt;type</samp> </td><td><samp>UI_VSCRBAR</samp> </td></tr>
  833. <tr><td><samp>form-&gt;ptr</samp> </td><td>Mutató az int értékre </td></tr>
  834. <tr><td><samp>form-&gt;max</samp> </td><td>Maximum érték </td></tr></table></div>
  835. <h2 id="vizszintes_szkrollozo">Vízszintes szkrollozó<a href="#vizszintes_szkrollozo"></a></h2>
  836. <img class="imgl" width="44" height="14" alt="ui_hscrbar.png" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAOBAMAAACmzuMPAAAAD1BMVEUAAAAPDw8eHh5GRkZeXl4bv8Y0AAAAJElEQVQY02NgIA0IgoALBDgIQgBM2NkYDIyGmjCTEgQghEkBAMWXGD2YDAi1AAAAAElFTkSuQmCC">
  837. <p>Kirajzol egy vízszintes szkroll mezőt (csak 32 bit).</p>
  838. <div class="table"><table><tr><th>Paraméter </th><th>Leírás </th></tr>
  839. <tr><td><samp>form-&gt;type</samp> </td><td><samp>UI_HSCRBAR</samp> </td></tr>
  840. <tr><td><samp>form-&gt;ptr</samp> </td><td>Mutató az int értékre </td></tr>
  841. <tr><td><samp>form-&gt;max</samp> </td><td>Maximum érték </td></tr></table></div>
  842. <h2 id="szin">Szín<a href="#szin"></a></h2>
  843. <img class="imgl" width="96" height="24" alt="ui_color.png" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAYBAMAAAD3x+WnAAAAFVBMVEUAAAAeHh4uLi47VnJHYn5eXl7AwMBXrPqpAAAApUlEQVQ4y72U3Q3CMAyEu4IF9XvZAGUCpKzAAHm5/UfoKabGgT40FcFSVOt0Xy4/badpfN16aiGwSEfNp4BLSinn/DgJoIgCEI7ijcDkHUALOIQ+Pthwhqq+lD1AxV0OuNICNbfIYcByYTnVorZ8SspGPvdQXZaA7y4kXOkmc38DYSm/BtAC8XzDsW6A2BbjlNt9tRfnwNFXYzww/HuYnz31h3/GCjIRhZl96HmvAAAAAElFTkSuQmCC">
  844. <p>Kirajzol egy egészszámbeviteli mezőt színként (csak 32 bit). Ha rákattintanak, akkor egy színválasztó ugrik fel.</p>
  845. <div class="table"><table><tr><th>Paraméter </th><th>Leírás </th></tr>
  846. <tr><td><samp>form-&gt;type</samp> </td><td><samp>UI_COLOR</samp> </td></tr>
  847. <tr><td><samp>form-&gt;ptr</samp> </td><td>Mutató az int értékre </td></tr></table></div>
  848. <h2 id="fajl">Fájl<a href="#fajl"></a></h2>
  849. <img class="imgl" width="161" height="20" alt="ui_file.png" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKEAAAAUAgMAAACYOLXjAAAADFBMVEUeHh4uLi5eXl7AwMB3Lt90AAAAzUlEQVQoz9XSwQnDMAwFUIGvAe3RU6FXgQuZoftknk4hyABZ5Q9gUL9MWlPIIbdSH5xv+8W2QuRxsonc5Vxbfi/bGNfspgw4kjbGml2O1b7hlPI6Jqe3nFQPJAzadJNwMYXG2oOW4AxQrUTZvFEWr8aFWB0CZco9oaScoQwtfOaeXEl5WwPFuzPJkFIA2zR2aW/prIcSlBmG5BFdYkgSHtV3PZCzfyTQgVsG2+9Jud9z5pc31l48nOc33koZKnrtWSwDX13+5l+6PM+15QVVEqQ1F1fd7QAAAABJRU5ErkJggg==">
  850. <p>Kirajzol egy szövegbeviteli mezőt. A bufferben egy nullával lezárt UTF-8 sztringnek kell lennie az elérési úttal. Ha a
  851. felhasználó rákattint, akkor egy <a href="#eleresi_ut" onclick="c('eleresi_ut')">elérési út</a> választót hoz elő, amivel a sztring egyszerűen szerkeszthető. Az <samp>str</samp> paraméter
  852. leírását lásd ott. Be kell húzni hozzá az <b>ui_file.h</b> modult.</p>
  853. <div class="table"><table><tr><th>Paraméter </th><th>Leírás </th></tr>
  854. <tr><td><samp>form-&gt;type</samp> </td><td><samp>UI_FILE</samp> </td></tr>
  855. <tr><td><samp>form-&gt;ptr</samp> </td><td>Mutató a bufferre az elérési úttal </td></tr>
  856. <tr><td><samp>form-&gt;max</samp> </td><td>A buffer mérete </td></tr>
  857. <tr><td><samp>form-&gt;min</samp> </td><td>Az elérési út választó minimális magassága </td></tr>
  858. <tr><td><samp>form-&gt;str</samp> </td><td>Lokalizált sztringtömb indexe (vagy 0) </td></tr></table></div>
  859. <h2 id="eleresi_ut">Elérési út<a href="#eleresi_ut"></a></h2>
  860. <img class="imgl" width="290" height="102" alt="ui_path.png" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASIAAABmBAMAAACdLoFLAAAAJ1BMVEUAAAAPDw8WFhYeHh4uLi4vLy9GRkZeXl5fX199fX6goKDAwMD///8lwbWUAAAGFElEQVRo3u2avY7jNhCACSiF21TpXbrSgU7WkJrg9oBDugOCfYXkAbbY1oAavYIBVVY3rUo9gQA+VDgzJEV5tRL1czkF0Sykpcjh8OP8UPZihdhlXN6G5HV4uCuxtvbTl+ny7EG8ahuvckDOw8Nd+R2J5HR58iDOO9F/jSgdIKrHiepqVaK0rqpUVkuI0tWJUu2kkahVE4jSZURpjVKlTKRbOga1pBv+aGCz5tkO40NtVNIKI4ZEOJTWtfHqIiLnAnzABQmw4qaNWk1RS5mnZsSa+Wp6MOqp4VtEpDemN2ryiBDS9JEIFzmzPzmPCSZNPSIc4ujVcjkRbpuJMEY9RLW0PuLK4uEOkR3i1lIidJLJbLNSl4gWCSHCh1quQVQbIl7iHVEtZTePeok4jxhtNSK/mDA3KEEqWdnzqB2u6laPK8/UWirXJRo49frPo3r9t0g/kfX+jyCSBFQ/ntl1HfSmTd+/0vZPI/97ovPgp/KR4Y4gUfQ2Q3yI/atYkHzZlOjvbuLrjMC/Dg0+vS2QJySaUR3noQqcY7CdvBMFEgkZR5OJ9NEj++f5BmOhb3RFpkEiohGiKD5MJYoPubbfOw8NCjsgMrrigzAPDHoYIRJziMh+3k8kOkQXJIq5EUqkDQiBzsSbiIKihva1Kv7RCG/viMiOQP+wM01D0G2M6Ko1LtcILUUcjgF5eXn5UxNRhuiF4sP1kIn8GvlE1+uB7OhgcdSYGBuoKa5jRBlt6cCWhHDh7pVvehxrDRnQ+7nI/TARUYZEaDd3eZQZIq2JmxgjilnL7C0fJPpVL07VbzIbFxN5nneIYkOUOSLnozynwQCi2BKNJdG3DDM7sgtpF8mOV4eJMtzDVKLhPJKXttYojzKBFqJQojgKI6I6w/hjQmVBJ+SBEpbyTt8eo0YKsYixGiPO7JhLM+eaHiLSZZzLS37JTCMPqX5Su+iUy3O6ZR5RayfP8JaTIjVIE9fa37Q70Xcmep7zcXjoO9Pzks/ZRCS3JE+bJPrjthGh7zB/b4roLy1fmUiphjvt74lSKIWT3XyyRxd1qJuzrjWVnXPzhh6JGjtSzCNSOBGX4PlFQz2KG2btm9dDc1C3+JioaRYTKeXNV9zHjlOelnULo6kBooI9SX7VV9GYUIQTkTuajpeoga75gMgN9RHdGuNJ1KNoq3CPFZw4N7cEbr8wlKqNk2Fkoka1Q315pOwOdasx6hNiaH2kGvdUkH9ubJC26BjdEsovpS6RtmKJ2g3MJlIut25eQXH+NzcvjwZ8tBZRo2x9KJdUoUS/2ffaO6JiRtSMdYZ4qP6bV/1eNRbNA9Gnn7X80iHSR5jiWiOT4bVW8Gmod8FElJXuPCz889cR0VFU+HnUR/RjxSdSSoU75F8h2oZsmOjzcSOybSKAO3fa33MEjZj5ZI8u6oCjs34CME8nwAs+ILrbSaf5RCc0wvNNE7hBa3O37SE8b0If0f2+lIh84eaDfQB0VGcY2g0ch4hO7Enyq75O99alXd+OEHW8RA10zRyi493zJEXb7RjCXEfbMaujZ044C9hdJk6GkYnunvv68gjHaIe6dSd1jyg8amBdxOtTAw3SFh2jXWLIR3rMEtkNLCAC61nwDcDRMAZFbS2iduNtUi0nOvlRg9A8clPfVf/Rq36vGkeqn4j0EQZca6QMxlpgrfEJSUSUle48PPnnr0MYOyGZaEtvEQDYFNH+7h8h2sxftLZNBFByp/09URIAnOzmkz26qAOks641wc6R3tAjUWlHknlEgBNxCZ6flNQD3DBrS6+H5qBu8jFRWS4mAvDmA/ex48DTsm5hNBggStiTWi8xmhDOx6pE1PESNdA1HxC5oT4iWRpPJmAsTSBKOHGkWwI3lBhKaONkLDNRCe1QXx6B3SHdgJw1IYbWR1C6p4SMob+hpIRuGbGHiMAvpS6RtuKITGMBEbjckl5Bcf6X0sujAR+tRURRM+lik2o9IphwOhnrDPFQ/dKrfq8ak3KcSB9hwAUJ5WMhjGQ254sEJqKsdOdh4p+/joiOomQkjzb1FgGATRHt7/4Rov0T27iPFv374vqy/8tsgPwDQbbPhQEgSNYAAAAASUVORK5CYII=">
  861. <p>Kirajzol egy elérési út választót. Az <samp>str</samp> a lokalizált sztring tömbben egy 8 sztringből álló csoport első indexe, ezek rendre:
  862. fájl neve, mérete, módosítási dátuma, most, N perce, egy órája, N órája, tegnap. Be kell húzni hozzá az <b>ui_file.h</b> modult.</p>
  863. <div class="table"><table><tr><th>Paraméter </th><th>Leírás </th></tr>
  864. <tr><td><samp>form-&gt;type</samp> </td><td><samp>UI_PATH</samp> </td></tr>
  865. <tr><td><samp>form-&gt;ptr</samp> </td><td>Mutató a bufferre az elérési úttal </td></tr>
  866. <tr><td><samp>form-&gt;max</samp> </td><td>A buffer mérete </td></tr>
  867. <tr><td><samp>form-&gt;str</samp> </td><td>Lokalizált sztringtömb indexe (vagy 0) </td></tr>
  868. <tr><td><samp>form-&gt;data</samp> </td><td>Mutató az <samp>ui_path_t</samp> kontextusra </td></tr></table></div>
  869. <p>Az <samp>ui_path_t</samp> struktúra pedig a következő:</p>
  870. <div class="table"><table><tr><th>Mező </th><th>Leírás </th></tr>
  871. <tr><td><samp>flags</samp> </td><td>Elérési út jelzőbitek </td></tr>
  872. <tr><td><samp>exts</samp> </td><td>Kiterjesztéslista (vagy NULL) </td></tr>
  873. <tr><td><samp>select</samp> </td><td>Kiválasztás rendben (vagy NULL) </td></tr></table></div>
  874. <p>A jelzőbitek:</p>
  875. <div class="table"><table><tr><th>Define </th><th>Leírás </th></tr>
  876. <tr><td><samp>UI_PATH_SEARCH</samp> </td><td>Keresőmezőt is tartalmazzon </td></tr>
  877. <tr><td><samp>UI_PATH_NEWDIR</samp> </td><td>Új könyvtár létrehozása gomb is legyen </td></tr>
  878. <tr><td><samp>UI_PATH_ONLYDIR</samp> </td><td>Csak könyvtárakat listázzon </td></tr>
  879. <tr><td><samp>UI_PATH_HIDDEN</samp> </td><td>Listázza a rejtett fájlokat is </td></tr></table></div>
  880. <p>A kiterjesztéslista egy nullával lezárt sztringeket tartalmazó lista, amit két nulla karakter zár, például
  881. <samp>png\0jpg\0\0</samp>. Ha meg van adva, akkor a lista csak az itt felsorolt kiterjesztésű fájlokat fogja tartalmazni.</p>
  882. <p>Ha a <samp>select</samp> visszahívás NULL, akkor egyszerűen az alkönyvtárakba belép, a fájlokat meg visszaadja. Ha meg van adva</p>
  883. <div class="pre"><pre class="lineno">1<br></pre><code><span class="hl_t">typedef</span> <span class="hl_t">int</span> (<span class="hl_o">*</span><span class="hl_f">ui_form_select</span>)(<span class="hl_t">char</span> <span class="hl_o">*</span><span class="hl_v">path</span>, <span class="hl_t">int</span> <span class="hl_v">isdir</span>);</code></div>
  884. <p>formában, akkor az 1-el tér vissza, ha az elérési út kiválasztható, egyébként 0-ával. Ha 0-val tért vissza, akkor az
  885. alkönyvtárakba belép, a fájlokkal pedig semmit sem csinál. A <samp>path</samp> paraméter könyvtárelválasztóra végződik, ha az egy könyvtár,
  886. és ilyenkor az <samp>isdir</samp> értéke 1. Ez arra használható, hogy további kritériát szabjunk a kiválasztandó elérési útnak, például
  887. könyvtárak esetében hogy tartalmaz-e egy bizonyos fájlt, vagy fájlok esetében hogy adott mágikus bájttal kezdődik-e vagy sem.
  888. A megadott visszahívás bármilyen plusz ellenőrzést implementálhat.</p><br style="clear:both;"><label class="btn prev" accesskey="p" for="_cimkek" title="Cimkék">Előző</label><label class="btn next" accesskey="n" for="_gombok" title="Gombok">Következő</label></div>
  889. <div class="page" rel="gombok"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Főoldal"></label>&nbsp;»</li><li>&nbsp;Gombok</li></ul><hr></div>
  890. <h1 id="gombok">Gombok<a href="#gombok"></a></h1>
  891. <h2 id="kapcsolo">Kapcsoló<a href="#kapcsolo"></a></h2>
  892. <img class="imgl" width="64" height="40" alt="ui_toggle.png" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAAoAQMAAAB0AG6qAAAABlBMVEUAAAD///+l2Z/dAAAAgUlEQVQY02NgIA8wPnBgYOBhYGBmOHCAgUEGyGgAMWyAjAOHP/x4A5J6cOBgzz8Q48CBg3+u8YDVHGy4BtEFYTAwHLjZA2YwPij4ccyegYES99iBDQQ6IxnGYGZgYP8Acg8biAFzzwOQeySAmg6AnGEAVAt2WALMPckw99QzUAsAAFZbPk+0LEdkAAAAAElFTkSuQmCC">
  893. <p>Ez egy speciális mező, amit egy <a href="#tarolok" onclick="c('tarolok')">tároló</a> mezőnek kell követnie, és annak a tároló mezőnek a láthatóságát kapcsolja.
  894. Ha a következő mező mégsem tároló lenne, akkor a <samp>form-&gt;value</samp> egy index az <samp>ui_event()</samp>-nek átadott űrlap elemeire.
  895. Ha a <samp>form-&gt;label</samp> 0, akkor a <samp>form-&gt;ptr</samp> egy nullával lezárt UTF-8 sztringre kell mutasson, ami cimkeként jelenik meg.
  896. Alapból ez elé a cimke elé kerül egy jobbra vagy lefelé nyíl, hacsak nincs <samp>UI_NOBULLET</samp> megadva, ekkor ugyanis nincs
  897. nyíl, helyette a cimke más színnel jelenik meg (lásd <a href="#szintema" onclick="c('szintema')">színtéma</a>, ez a menüelemekhez kell).</p>
  898. <div class="table"><table><tr><th>Paraméter </th><th>Leírás </th></tr>
  899. <tr><td><samp>form-&gt;type</samp> </td><td><samp>UI_TOGGLE</samp> </td></tr>
  900. <tr><td><samp>form-&gt;flags</samp> </td><td>Esetleg <samp>UI_NOBULLET</samp> </td></tr>
  901. <tr><td><samp>form-&gt;label</samp> </td><td>Lokalizált sztringtömb indexe (vagy 0) </td></tr>
  902. <tr><td><samp>form-&gt;ptr</samp> </td><td>Csak ha <samp>label</samp> 0, mutató egy sztringre </td></tr>
  903. <tr><td><samp>form-&gt;value</samp> </td><td>Ha nem tároló követi, <samp>ui_event()</samp> űrlap indexe </td></tr></table></div>
  904. <h2 id="pipa">Pipa<a href="#pipa"></a></h2>
  905. <img class="imgl" width="64" height="40" alt="ui_check.png" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAAoBAMAAAC84OHaAAAAD1BMVEUAAAAeHh42NjZeXl7///8gMbKdAAAAoUlEQVQ4y92SwQ3DIAxFHckDlBVcNugCVvT3n6lOMK1pcA49Yikgw9MPJI9orQJs0LjCrdtKKQ9veQDggIg8ZwB3oEp1gIFzsCfgm+x7TLBtNQgBqMMrbE9ZFTcJxxyB7xkSYLgF2hkiQC+r/qH6LfTgAKXl6uIDnys3PsDb1Ae6Aj8+EKZGTXyQxIcWMEnw390PlAIekPvwych8wJI+/FtvnbYxa3C+9qYAAAAASUVORK5CYII=">
  906. <p>Kirajzol egy pipát cimkével. A mutatott érték jelzi, hogy be van-e pipálva. Ha rákattintanak, akkor a <samp>value</samp> int érték
  907. XOR-olódik a megadott címen lévő értékkel.</p>
  908. <div class="table"><table><tr><th>Paraméter </th><th>Leírás </th></tr>
  909. <tr><td><samp>form-&gt;type</samp> </td><td><samp>UI_CHECK</samp> </td></tr>
  910. <tr><td><samp>form-&gt;flags</samp> </td><td>Esetleg <samp>UI_NOBULLET</samp> </td></tr>
  911. <tr><td><samp>form-&gt;ptr</samp> </td><td>Mutató az int értékre </td></tr>
  912. <tr><td><samp>form-&gt;value</samp> </td><td>A gomb bitmaszkja </td></tr>
  913. <tr><td><samp>form-&gt;label</samp> </td><td>Lokalizált sztringtömb indexe </td></tr></table></div>
  914. <h2 id="valaszto">Választó<a href="#valaszto"></a></h2>
  915. <img class="imgl" width="64" height="40" alt="ui_radio.png" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAAoBAMAAAC84OHaAAAAD1BMVEUAAAAeHh42NjZeXl7///8gMbKdAAAApklEQVQ4y92SwQ2DMAxFHdUDlI5gOkBVFrCqv/9MdUOcBog5cIylRPzwZJnwiMYqwDZtT7ikNE0eeQOgpIfIvQdwAZLgM68AA3mz1eDpCcxNB3utBiEGrA2rngD5uQX+M/QBeou8KoB1hg1wW5Z6Uf4V+uMApeHq4APnkxMf4DHywWMSkb4PBNoBgQ97oPrgMx46lN9dpY4A+KyRD7VH5AOG9OFqfQG2UjEf5ieLywAAAABJRU5ErkJggg==">
  916. <p>Kirajzol egy választót cimkével. A mutatott érték jelzi, hogy ez-e az aktív. Ha rákattintanak, akkor a <samp>value</samp> int érték
  917. kerül a megadott címre.</p>
  918. <div class="table"><table><tr><th>Paraméter </th><th>Leírás </th></tr>
  919. <tr><td><samp>form-&gt;type</samp> </td><td><samp>UI_RADIO</samp> </td></tr>
  920. <tr><td><samp>form-&gt;flags</samp> </td><td>Esetleg <samp>UI_NOBULLET</samp> </td></tr>
  921. <tr><td><samp>form-&gt;ptr</samp> </td><td>Mutató az int értékre </td></tr>
  922. <tr><td><samp>form-&gt;value</samp> </td><td>A gomb int értéke </td></tr>
  923. <tr><td><samp>form-&gt;label</samp> </td><td>Lokalizált sztringtömb indexe </td></tr></table></div>
  924. <h2 id="gomb">Gomb<a href="#gomb"></a></h2>
  925. <img class="imgl" width="62" height="57" alt="ui_button.png" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAD4AAAA5BAMAAACc6oXPAAAAGFBMVEUAAAAPDw8eHh4fHx82NjZGRkZeXl5fX18xIiCsAAABGUlEQVQ4y83UwWrDMAwG4H8Qo2vWw85jT2KGWa5m4Oa6U8852Oj1J7lNsJO4DEZDBVadfLFRwTLw6Hh5bYf626UZP716aMb3UQ5IMiV5U7qnJKN0UO2hdr9xDxhNMnTvabN+Ig7gycg3uO222V8eyRMhtZyZ73rS35U75yzpgEO0nRWP+Y37nB3QRNECbGmATrrCB46anGOZsBskMRfeiKfw/qMd/R/O96P759Qu713rO7X/39ezeD4/XSE2v1nc0u3EzSGN0FXuah+iPl59t7+kFUI4F77pr7Tyur90+Y7P/ZWX7/jcX3n52iHuzdWTFrl4vn9ASWqT/Udx6AWy+MhJUwgsEw5jGqWQwhtxiPft+/1yRP/8L34BaxtPbQtIP+UAAAAASUVORK5CYII=">
  926. <p>Kirajzol egy gombot. A mutatott érték jelzi, hogy be van-e nyomva. Ha rákattintanak, akkor a <samp>value</samp> int érték
  927. kerül a megadott címre. Lehet ikonja is, cimkéje is, vagy akár mindkettő. Ha bőrrel van rajzolva, akkor ott lehet
  928. árnyék, ami függőlegesen eltolja a cimkét. Ha ez előfordulna, akkor az <samp>m</samp> margóval igazítható (lehet negatív is).</p>
  929. <div class="table"><table><tr><th>Paraméter </th><th>Leírás </th></tr>
  930. <tr><td><samp>form-&gt;type</samp> </td><td><samp>UI_BUTTON</samp> </td></tr>
  931. <tr><td><samp>form-&gt;flags</samp> </td><td>Esetleg <samp>UI_NOBORDER</samp> </td></tr>
  932. <tr><td><samp>form-&gt;ptr</samp> </td><td>Mutató az int értékre </td></tr>
  933. <tr><td><samp>form-&gt;value</samp> </td><td>A gomb int értéke </td></tr>
  934. <tr><td><samp>form-&gt;label</samp> </td><td>Lokalizált sztringtömb indexe </td></tr>
  935. <tr><td><samp>form-&gt;icon</samp> </td><td>Mutató egy <samp>ui_image_t</samp> struct-ra </td></tr>
  936. <tr><td><samp>form-&gt;m</samp> </td><td>Felső margó, ha bőrözött </td></tr></table></div>
  937. <h2 id="gombkapcsolo">Gombkapcsoló<a href="#gombkapcsolo"></a></h2>
  938. <img class="imgl" width="62" height="57" alt="ui_button.png" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAD4AAAA5BAMAAACc6oXPAAAAGFBMVEUAAAAPDw8eHh4fHx82NjZGRkZeXl5fX18xIiCsAAABGUlEQVQ4y83UwWrDMAwG4H8Qo2vWw85jT2KGWa5m4Oa6U8852Oj1J7lNsJO4DEZDBVadfLFRwTLw6Hh5bYf626UZP716aMb3UQ5IMiV5U7qnJKN0UO2hdr9xDxhNMnTvabN+Ig7gycg3uO222V8eyRMhtZyZ73rS35U75yzpgEO0nRWP+Y37nB3QRNECbGmATrrCB46anGOZsBskMRfeiKfw/qMd/R/O96P759Qu713rO7X/39ezeD4/XSE2v1nc0u3EzSGN0FXuah+iPl59t7+kFUI4F77pr7Tyur90+Y7P/ZWX7/jcX3n52iHuzdWTFrl4vn9ASWqT/Udx6AWy+MhJUwgsEw5jGqWQwhtxiPft+/1yRP/8L34BaxtPbQtIP+UAAAAASUVORK5CYII=">
  939. <p>Kirajzol egy gombot, ami <a href="#kapcsolo" onclick="c('kapcsolo')">kapcsoló</a>ként viselkedik. Ha rákattintanak, akkor a mutatott <a href="#tarolok" onclick="c('tarolok')">tároló</a> mező láthatóságát
  940. kapcsolja. Ha a <samp>ptr</samp> értéke NULL, akkor a <samp>form-&gt;value</samp> egy index az <samp>ui_event()</samp>-nek átadott űrlap elemeire.</p>
  941. <div class="table"><table><tr><th>Paraméter </th><th>Leírás </th></tr>
  942. <tr><td><samp>form-&gt;type</samp> </td><td><samp>UI_BTNTGL</samp> </td></tr>
  943. <tr><td><samp>form-&gt;flags</samp> </td><td>Esetleg <samp>UI_NOBORDER</samp> </td></tr>
  944. <tr><td><samp>form-&gt;ptr</samp> </td><td>Mutató egy <samp>ui_form_t</samp> tároló mezőre </td></tr>
  945. <tr><td><samp>form-&gt;value</samp> </td><td>Ha a <samp>ptr</samp> NULL, <samp>ui_event()</samp> űrlap indexe </td></tr>
  946. <tr><td><samp>form-&gt;label</samp> </td><td>Lokalizált sztringtömb indexe </td></tr>
  947. <tr><td><samp>form-&gt;icon</samp> </td><td>Mutató egy <samp>ui_image_t</samp> struct-ra </td></tr>
  948. <tr><td><samp>form-&gt;m</samp> </td><td>Felső margó, ha bőrözött </td></tr></table></div>
  949. <h2 id="ikongomb">Ikongomb<a href="#ikongomb"></a></h2>
  950. <img class="imgl" width="23" height="24" alt="ui_image.png" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABcAAAAYCAMAAAAmopZHAAAC/VBMVEUAAAAFAAAAAgAVBQAQBwAUDQMjEQApEwAqFAArFAAnFgguFwAuGwApHAcxHQA4HwMxIgJAJgZBJwdELxpIOSF/RgCBRwB8SRGMSwCUVxyaVw2cWAOYWg2ZWw+aXAOaXBChXQmEYz2fYACTZhKiYwCTZDakZAGlZQKmZgSsZQmnZwWqagu3aQCobQurayGhbiaobimicwupbyqjdA2bdFqqdSafdlfIcQCbe0Cxexu8fQjJeBvPdxPReASLhH7LehLSeQbOfAShgnDPfQbHfS+6gyzEhAK1iRvRfyzdggXPgy3egwfEhzq1jx/ghAnhhQDCjgnDjwDShjjHjQ7GiUOoj3vLkACfko3hiwDijADeiiezmCXniwHojAPjjRTZjT7mjwO8myDjkgPJmgnLmwvOngDcmRjanASsnpndmhnRoADwlwDrmgDunAHQpQXloADknxLvnQTloBTwngfmoRbzoADyoAvuogrpoxn/nwLLrR7KrSnwpCvupw+zrabOsCLzphP1pwDoqR39oxi8rKH1pxXpqh/Isj74pS/5qwburhbYtDTrsRf8rQ3srkn9rxD/sBPmtEL6shH8sxP9sED+tRfquE7FvK/+vB3Ewcb/vR//vCv/viH9wS7Nxr//xCb9xiXRycLrzyL/ySn/yTX9zCru0ifUzcX/zzj/0C7/0Dn80i390yH/0Ev/0U3+1DD/1ST22SL91EX81E361zHc1M382DL92Sf/1k/92TP/2ij63Cf/11n/2yr+12D83ir/3EL+3FP+3Fvi29T/4S/Z3uH93mvj3dzb3+Ld39zc4OP05lb+41f941/+5zP151je4+X95G/851H/6TX/6UD86zX87EH96WP+7Tfq5eT77FT96mz96nP87VX/6YH+7k388kX+8Gj97ov/8Wn782H98Jr99WP79nP893T793v+9ZD++G36+Ir8+IP/9pH/+W7/9az796X/9qb/+Jn8+Kb9+af/+aH8+a78+rX7+739+7b6/MP9+9H9/Nj+/dnCdRsJAAAB3UlEQVQoz2Ngwg4YoDSrgMW0idMsBFhRxZVTVtz7+OHjo3Upykji/H0rnv75++/v379/Pq3o44eKM/JVHPry49fP379///zx4/uxfB5GsLhIzdpX7z5//vb169dvnz+/e7WvRgQkzqg3++Kd5y/fvn375u3bly+f374zW48RKM47ZfPZ6w9fv3/x8uXLF+8fP7x+dk8HF1Ccs3nTjjO3znc/efbs2d3285fOHNxcyQkUN+pdsunAFUOx6gcP7kdL+F47sGnJBAOguGPv3JXbjhgqVd84dzVRxf3c+pVzex2B4g69sxas3LWoaveRI0c21i/btXLBrF5boLht44z5i9ds2LVr134g3rBm8fxZnQ5AcfPSqU09q7dt2wkE2zZsW9rVNrXUHCjukj3ZNdzMMjArLy8vNcDUxC54UqE1UFwwpjNs5olTF5bPmzdv+YUTJ+rSG2IFgeLMOjm1qqEtCw8fv3ly6/QMJ/3enCg2UPiIepanySlIy8rKy0pJq2mUFHpLQsLZI7IwTUlDW0MDiNWKCuO8hCHhzGkTkVtkpauhpKHr1pobZ8/JCI0XznjvpNyyooKissIk7yBueHwxMolrevsnJMT6e2uKA3lI8c7CqRjiE6LIyYKWHtABAHI8zlZkUGOOAAAAAElFTkSuQmCC">
  951. <p>Kirajzol egy ikont, ha be van pipálva, egyébként semmit. Ha rákattintanak, akkor a <samp>value</samp> int érték XOR-olódik a megadott
  952. címen lévő értékkel. Pontosan úgy működik, mint a <a href="#pipa" onclick="c('pipa')">pipa</a>.</p>
  953. <div class="table"><table><tr><th>Paraméter </th><th>Leírás </th></tr>
  954. <tr><td><samp>form-&gt;type</samp> </td><td><samp>UI_BTNICN</samp> </td></tr>
  955. <tr><td><samp>form-&gt;ptr</samp> </td><td>Mutató az int értékre </td></tr>
  956. <tr><td><samp>form-&gt;value</samp> </td><td>A gomb bitmaszkja </td></tr>
  957. <tr><td><samp>form-&gt;icon</samp> </td><td>Mutató egy <samp>ui_image_t</samp> struct-ra </td></tr></table></div><br style="clear:both;"><label class="btn prev" accesskey="p" for="_bevitel" title="Bevitel">Előző</label><label class="btn next" accesskey="n" for="_vonalak" title="Vonalak">Következő</label></div>
  958. <div class="page" rel="vonalak"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Főoldal"></label>&nbsp;»</li><li>&nbsp;Vonalak</li></ul><hr></div>
  959. <h1 id="vonalak">Vonalak<a href="#vonalak"></a></h1>
  960. <h2 id="vonal">Vonal<a href="#vonal"></a></h2>
  961. <img class="imgl" width="114" height="38" alt="ui_lines.png" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHIAAAAmCAMAAAAvHD+uAAABAlBMVEUAAAACAgIHBwcLCwsSEhIUFBQWFhYYGBgbGxsgICAiIiIjIyMmJiYqKiosLCwuLi4wMDAxMTE0NDQ2NjY4ODhDQ0NERERFRUVISEhLS0tMTExOTk5PT09VVVVWVlZbW1tcXFxgYGBkZGRlZWVnZ2doaGhqamptbW1vb29ycnJ0dHR6enp+fn6AgICCgoKIiIiLi4uMjIySkpKYmJiZmZmampqbm5ucnJyioqKmpqanp6eqqqqurq6wsLCysrK0tLS2tra3t7e5ubm6urrAwMDDw8PLy8vMzMzNzc3Q0NDT09PU1NTX19fa2trh4eHl5eXm5ubn5+fr6+v19fX9/f3+/v4m0jMJAAABnElEQVRYw+2X127CMBSGQ4GwygirZoe9wgh7bwg7jPr9X6VAZagqII0wvqj4b/Lbx9Inn5zjOBT10kv/Wgq2BYVyxEqK58iOYIt9s0bKAgQkgFk4yjrQAECefjYwuqlof45pXsZG9SBe6K2gLKB32rX9ngNQYp9qxhXmSh1BhKteIQ70coC27tR7ZZrnTw+lxmC2O9z+YCzF5QrVens4ni7Xuz0UhU6JC7sYteyUaiub6NUADT8O9bTfrZfT8bBdrxZyXCoW9LsddrNBo3zgJaZh9kYEfAqXesInz7yhux451E8vgh+oa8w9N4E8HSljJ6Zh+lZOT21pFYjl9ED87klIk8nphYjaBI/AzZweNwfObYKTeOc0U4vIqbZkiBRzrhrTjAyRcnWQcw4wES0S34hwCblADRNyErof5zjkknk8xGJRYkEpjFw+iYUYmkit6LiQqwXwlI5FaonAIDdwPr9YTxLP39yZiQzxcvhQWxUZ4mFVi1UcTeKx887oyzQXf7y0He/PLZbp998fIcJFM+Mzyru1J14/Ly+R1hf+3jchTRgY+QAAAABJRU5ErkJggg==">
  962. <p>Egy sor összefüggő vonalat húz. A <samp>form-&gt;ptr</samp> egy int16_t (short int) értékeket tartalmazó tömbre kell mutasson,
  963. több <samp>x</samp> és <samp>y</samp> párral, és a legutolsó párnak 0,0-nak kell lennie.</p>
  964. <div class="table"><table><tr><th>Paraméter </th><th>Leírás </th></tr>
  965. <tr><td><samp>form-&gt;type</samp> </td><td><samp>UI_LINES</samp> </td></tr>
  966. <tr><td><samp>form-&gt;ptr</samp> </td><td>Mutató az int16_t tömbre </td></tr>
  967. <tr><td><samp>form-&gt;value</samp> </td><td>32 bites RGBA szín </td></tr></table></div>
  968. <h2 id="vizszintes_osszekotes">Vízszintes összekötés<a href="#vizszintes_osszekotes"></a></h2>
  969. <img class="imgl" width="64" height="38" alt="ui_hconnect.png" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAAmAgMAAAAJqnUKAAAACVBMVEUAAABISEj+/v45K09pAAAAT0lEQVQoz2NgIB1wrVq1agG6oNYSdBGpBnSRFRgmYSjBMFcDXYADwxB0ASb6CDigCTBieIY+AhhBpkAwDDGDDDM+MZRgxt4KolKGAOEUBQBwag++OdOl7wAAAABJRU5ErkJggg==">
  970. <p>Összeköt két pontot vízszintesen egy ívvel. A <samp>form-&gt;ptr</samp> egy pontosan 4 elemű int16_t tömbre kell mutasson,
  971. <samp>x0</samp> és <samp>y0</samp> a kiinduló pont, <samp>x1</samp> és <samp>y1</samp> pedig a végpont pár.</p>
  972. <div class="table"><table><tr><th>Paraméter </th><th>Leírás </th></tr>
  973. <tr><td><samp>form-&gt;type</samp> </td><td><samp>UI_HCONNECT</samp> </td></tr>
  974. <tr><td><samp>form-&gt;ptr</samp> </td><td>Mutató a 4 elemű int16_t tömbre </td></tr>
  975. <tr><td><samp>form-&gt;value</samp> </td><td>32 bites RGBA szín </td></tr></table></div>
  976. <h2 id="fuggoleges_osszekotes">Függőleges összekötés<a href="#fuggoleges_osszekotes"></a></h2>
  977. <img class="imgl" width="64" height="38" alt="ui_vconnect.png" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAAmAgMAAAAJqnUKAAAACVBMVEUAAABISEj+/v45K09pAAAARklEQVQoz2NgIAg46CLAhS7AhCHQgC6yAF1Ag7CpE9BFsjCUrMIUAQIHNEFGkCCGkzBFVqILsFHFHxiGEDZVgS4CAgykAwCF0g7pSVnJ/AAAAABJRU5ErkJggg==">
  978. <p>Összeköt két pontot függőlegesen egy ívvel. A <samp>form-&gt;ptr</samp> egy pontosan 4 elemű int16_t tömbre kell mutasson,
  979. <samp>x0</samp> és <samp>y0</samp> a kiinduló pont, <samp>x1</samp> és <samp>y1</samp> pedig a végpont pár.</p>
  980. <div class="table"><table><tr><th>Paraméter </th><th>Leírás </th></tr>
  981. <tr><td><samp>form-&gt;type</samp> </td><td><samp>UI_VCONNECT</samp> </td></tr>
  982. <tr><td><samp>form-&gt;ptr</samp> </td><td>Mutató a 4 elemű int16_t tömbre </td></tr>
  983. <tr><td><samp>form-&gt;value</samp> </td><td>32 bites RGBA szín </td></tr></table></div>
  984. <h2 id="bezier_iv">Bezier ív<a href="#bezier_iv"></a></h2>
  985. <img class="imgl" width="64" height="38" alt="ui_curve.png" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAAmAgMAAAAJqnUKAAAACVBMVEUAAABISEj+/v45K09pAAAAYElEQVQoz2NgIB1wrQIBdFGmVQ3oQiswdDqgCTBi6EEXYMIQwDAUXSAD3ZIJhJyhgW7HAlLtYEK3QwpdxxJCHsOwQwJdQAVdQIF0AQ2M4MOIAmKidtUqjKhcBQENZKQoAIH/FUTePN+ZAAAAAElFTkSuQmCC">
  986. <p>Tetszőleges Bezier ív kirajzolása. A <samp>form-&gt;ptr</samp> egy pontosan 8 elemű int16_t tömbre kell mutasson, <samp>x0</samp> és <samp>y0</samp>
  987. a kiinduló pont, <samp>x1</samp> és <samp>y1</samp> a végpont, <samp>cx0</samp> és <samp>cy0</samp> az első kontrollpont, <samp>cx1</samp> és <samp>cy1</samp> pedig a második
  988. kontrollpont koordináta párja.</p>
  989. <div class="table"><table><tr><th>Paraméter </th><th>Leírás </th></tr>
  990. <tr><td><samp>form-&gt;type</samp> </td><td><samp>UI_CURVE</samp> </td></tr>
  991. <tr><td><samp>form-&gt;ptr</samp> </td><td>Mutató a 8 elemű int16_t tömbre </td></tr>
  992. <tr><td><samp>form-&gt;value</samp> </td><td>32 bites RGBA szín </td></tr></table></div><br style="clear:both;"><label class="btn prev" accesskey="p" for="_gombok" title="Gombok">Előző</label><label class="btn next" accesskey="n" for="_egyedi" title="Egyedi">Következő</label></div>
  993. <div class="page" rel="egyedi"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Főoldal"></label>&nbsp;»</li><li>&nbsp;Egyedi</li></ul><hr></div>
  994. <h1 id="egyedi">Egyedi<a href="#egyedi"></a></h1>
  995. <p>Felhasználó által kreált egyedi mezők is használhatók, ehhez mindössze típusonként 4 visszacsatolásra van szükség.</p>
  996. <div class="table"><table><tr><th>Paraméter </th><th>Leírás </th></tr>
  997. <tr><td><samp>form-&gt;type</samp> </td><td><samp>UI_CUSTOM</samp> </td></tr>
  998. <tr><td><samp>form-&gt;flags</samp> </td><td>Figyelembe kell venni a <samp>UI_HIDDEN</samp>-t és <samp>UI_DISABLED</samp>-t </td></tr>
  999. <tr><td><samp>form-&gt;ptr</samp> </td><td>Mutató tetszőleges adat bufferre </td></tr>
  1000. <tr><td><samp>form-&gt;data</samp> </td><td>Mutató tetszőleges adat kontextusra </td></tr>
  1001. <tr><td><samp>form-&gt;str</samp> </td><td>Lokalizált sztringtömb indexe (vagy 0) </td></tr>
  1002. <tr><td><samp>form-&gt;bbox</samp> </td><td>Méretfunkció </td></tr>
  1003. <tr><td><samp>form-&gt;view</samp> </td><td>Kirajzolófunkció </td></tr>
  1004. <tr><td><samp>form-&gt;ctrl</samp> </td><td>Eseménykezelőfunkció </td></tr>
  1005. <tr><td><samp>form-&gt;fini</samp> </td><td>Opcionális felszabadításfunkció </td></tr></table></div>
  1006. <h2 id="meretezes">Méretezés<a href="#meretezes"></a></h2>
  1007. <div class="pre"><pre class="lineno">1<br>2<br></pre><code><span class="hl_t">typedef</span> <span class="hl_t">int</span> (<span class="hl_o">*</span><span class="hl_f">ui_bbox</span>)(<span class="hl_v">ui_t</span> <span class="hl_o">*</span><span class="hl_v">ctx</span>, <span class="hl_t">int</span> <span class="hl_v">x</span>, <span class="hl_t">int</span> <span class="hl_v">y</span>, <span class="hl_t">int</span> <span class="hl_v">w</span>, <span class="hl_t">int</span> <span class="hl_v">h</span>,
  1008. <span class="hl_v">ui_form_t</span> <span class="hl_o">*</span><span class="hl_v">form</span>, <span class="hl_t">int</span> <span class="hl_o">*</span><span class="hl_v">dw</span>, <span class="hl_t">int</span> <span class="hl_o">*</span><span class="hl_v">dh</span>);</code></div>
  1009. <p>Ez a funkció a számolt területet kapja <samp>x</samp>, <samp>y</samp>, <samp>w</samp>, <samp>h</samp> változókban, ahol a mezőnek meg kell jelennie, az űrlapelemet pedig
  1010. a <samp>form</samp>-ban, majd vissza kell adnia a tényleges szélességet a <samp>dw</samp> és a tényleges magasságot a <samp>dh</samp> változókban.</p>
  1011. <h2 id="megjelenites">Megjelenítés<a href="#megjelenites"></a></h2>
  1012. <div class="pre"><pre class="lineno">1<br>2<br></pre><code><span class="hl_t">typedef</span> <span class="hl_t">int</span> (<span class="hl_o">*</span><span class="hl_f">ui_view</span>)(<span class="hl_v">ui_t</span> <span class="hl_o">*</span><span class="hl_v">ctx</span>, <span class="hl_t">int</span> <span class="hl_v">x</span>, <span class="hl_t">int</span> <span class="hl_v">y</span>, <span class="hl_t">int</span> <span class="hl_v">w</span>, <span class="hl_t">int</span> <span class="hl_v">h</span>,
  1013. <span class="hl_v">ui_form_t</span> <span class="hl_o">*</span><span class="hl_v">form</span>);</code></div>
  1014. <p>Ez a funkció a tényleges területet kapja <samp>x</samp>, <samp>y</samp>, <samp>w</samp>, <samp>h</samp> változókban, ahová a mezőt ki kell rajzolni, az űrlapelemet pedig
  1015. a <samp>form</samp>-ban. Használhatja az alacsonyszintű <samp>_ui_line()</samp>, <samp>_ui_cbez()</samp>, <samp>_ui_rect()</samp>, <samp>_ui_blit()</samp> stb. hívásokat, vagy
  1016. direktben változtathatja a pixeleket a <samp>ctx-&gt;screen</samp> <a href="#kep" onclick="c('kep')">kép</a>ben. Nagyon fontos, hogy <i><b>nem módosíthat</b></i> a megadott területen
  1017. hívül.</p>
  1018. <h2 id="kontroller">Kontroller<a href="#kontroller"></a></h2>
  1019. <div class="pre"><pre class="lineno">1<br>2<br></pre><code><span class="hl_t">typedef</span> <span class="hl_t">int</span> (<span class="hl_o">*</span><span class="hl_f">ui_ctrl</span>)(<span class="hl_v">ui_t</span> <span class="hl_o">*</span><span class="hl_v">ctx</span>, <span class="hl_t">int</span> <span class="hl_v">x</span>, <span class="hl_t">int</span> <span class="hl_v">y</span>, <span class="hl_t">int</span> <span class="hl_v">w</span>, <span class="hl_t">int</span> <span class="hl_v">h</span>,
  1020. <span class="hl_v">ui_form_t</span> <span class="hl_o">*</span><span class="hl_v">form</span>, <span class="hl_v">ui_event_t</span> <span class="hl_o">*</span><span class="hl_v">evt</span>);</code></div>
  1021. <p>Ez a funkció a tényleges területet kapja <samp>x</samp>, <samp>y</samp>, <samp>w</samp>, <samp>h</samp> változókban, ahol a mező található, az űrlapelemet a <samp>form</samp>-ban,
  1022. az aktuális eseményt pedig az <samp>evt</samp>-ben az <a href="#esemenykezeles" onclick="c('esemenykezeles')">eseménykezelés</a>hez. Ez csak akkor hívódik, ha a <samp>form</samp> nem <samp>UI_HIDDEN</samp> (rejtett)
  1023. és nem is <samp>UI_DISABLED</samp> (inaktív), és az egér épp fölötte tartózkodik.</p>
  1024. <h2 id="destruktor">Destruktor<a href="#destruktor"></a></h2>
  1025. <div class="pre"><pre class="lineno">1<br></pre><code><span class="hl_t">typedef</span> <span class="hl_t">int</span> (<span class="hl_o">*</span><span class="hl_f">ui_fini</span>)(<span class="hl_v">ui_t</span> <span class="hl_o">*</span><span class="hl_v">ctx</span>, <span class="hl_v">ui_form_t</span> <span class="hl_o">*</span><span class="hl_v">form</span>);</code></div>
  1026. <p>Erre az opcionális visszacsatolásra csak akkor van szükség, ha az egyedi mező memóriát allokált. Többször is meghívódhat,
  1027. ezért fontos úgy megírni, hogy csak egyszer szabadítsa fel a buffer(eke)t.</p><br style="clear:both;"><label class="btn prev" accesskey="p" for="_vonalak" title="Vonalak">Előző</label><label class="btn next" accesskey="n" for="_pelda" title="Példa">Következő</label></div>
  1028. <div class="page" rel="pelda"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Főoldal"></label>&nbsp;»</li><li>&nbsp;Példa</li></ul><hr></div>
  1029. <h1 id="pelda">Példa<a href="#pelda"></a></h1>
  1030. <div class="pre"><pre class="lineno">1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br>11<br>12<br>13<br>14<br>15<br>16<br>17<br>18<br>19<br>20<br>21<br>22<br>23<br>24<br>25<br>26<br>27<br>28<br>29<br>30<br>31<br>32<br>33<br>34<br>35<br>36<br>37<br>38<br>39<br>40<br>41<br>42<br>43<br>44<br>45<br>46<br>47<br>48<br>49<br>50<br>51<br>52<br>53<br>54<br>55<br>56<br>57<br></pre><code><span class="hl_p">#define UI_IMPLEMENTATION</span>
  1031. <span class="hl_p">#include &lt;ui.h&gt;</span>
  1032. <span class="hl_t">int</span> <span class="hl_f">main</span>(<span class="hl_t">int</span> <span class="hl_v">argc</span>, <span class="hl_t">char</span> <span class="hl_o">**</span><span class="hl_v">argv</span>)
  1033. {
  1034. <span class="hl_c">/* lokalizált sztringek tömbje */</span>
  1035. <span class="hl_t">enum</span> { <span class="hl_v">WINDOW_TITLE</span>, <span class="hl_v">POPUP_TITLE</span>, <span class="hl_v">BUTTON_TITLE</span>,
  1036. <span class="hl_v">EASY_TITLE</span>, <span class="hl_v">HARD_TITLE</span>, <span class="hl_v">VOLUME_TITLE</span> };
  1037. <span class="hl_t">char</span> <span class="hl_o">*</span><span class="hl_v">lang</span>[] <span class="hl_o">=</span> { <span class="hl_s">&quot;Basic demo&quot;</span>, <span class="hl_s">&quot;Show&quot;</span>, <span class="hl_s">&quot;Button&quot;</span>,
  1038. <span class="hl_s">&quot;easy&quot;</span>, <span class="hl_s">&quot;hard&quot;</span>, <span class="hl_s">&quot;Volume:&quot;</span> };
  1039. <span class="hl_c">/* állapotok tárolására használt változók */</span>
  1040. <span class="hl_t">int</span> <span class="hl_v">button</span> <span class="hl_o">=</span> <span class="hl_n">0</span>, <span class="hl_v">difficulty</span> <span class="hl_o">=</span> <span class="hl_n">0</span>, <span class="hl_v">volume</span> <span class="hl_o">=</span> <span class="hl_n">25</span>;
  1041. <span class="hl_c">/* ezekre hivatkozó űrlap, HTML-folyam szerű elrendezéssel */</span>
  1042. <span class="hl_v">ui_t</span> <span class="hl_v">ctx</span>;
  1043. <span class="hl_v">ui_form_t</span> <span class="hl_v">popup</span>[] <span class="hl_o">=</span> {
  1044. { <span class="hl_o">.</span><span class="hl_v">type</span> <span class="hl_o">=</span> <span class="hl_v">UI_BUTTON</span>, <span class="hl_o">.</span><span class="hl_v">flags</span> <span class="hl_o">=</span> <span class="hl_v">UI_FORCEBR</span>,
  1045. <span class="hl_o">.</span><span class="hl_v">ptr</span> <span class="hl_o">=</span> <span class="hl_o">&amp;</span><span class="hl_v">button</span>, <span class="hl_o">.</span><span class="hl_v">value</span> <span class="hl_o">=</span> <span class="hl_n">1</span>,
  1046. <span class="hl_o">.</span><span class="hl_v">label</span> <span class="hl_o">=</span> <span class="hl_v">BUTTON_TITLE</span> },
  1047. { <span class="hl_o">.</span><span class="hl_v">type</span> <span class="hl_o">=</span> <span class="hl_v">UI_RADIO</span>, <span class="hl_o">.</span><span class="hl_v">flags</span> <span class="hl_o">=</span> <span class="hl_v">UI_NOBR</span>,
  1048. <span class="hl_o">.</span><span class="hl_v">ptr</span> <span class="hl_o">=</span> <span class="hl_o">&amp;</span><span class="hl_v">difficulty</span>, <span class="hl_o">.</span><span class="hl_v">value</span> <span class="hl_o">=</span> <span class="hl_n">0</span>,
  1049. <span class="hl_o">.</span><span class="hl_v">y</span> <span class="hl_o">=</span> <span class="hl_n">5</span>, <span class="hl_o">.</span><span class="hl_v">label</span> <span class="hl_o">=</span> <span class="hl_v">EASY_TITLE</span> },
  1050. { <span class="hl_o">.</span><span class="hl_v">type</span> <span class="hl_o">=</span> <span class="hl_v">UI_RADIO</span>, <span class="hl_o">.</span><span class="hl_v">flags</span> <span class="hl_o">=</span> <span class="hl_v">UI_FORCEBR</span>,
  1051. <span class="hl_o">.</span><span class="hl_v">ptr</span> <span class="hl_o">=</span> <span class="hl_o">&amp;</span><span class="hl_v">difficulty</span>, <span class="hl_o">.</span><span class="hl_v">value</span> <span class="hl_o">=</span> <span class="hl_n">1</span>,
  1052. <span class="hl_o">.</span><span class="hl_v">x</span> <span class="hl_o">=</span> <span class="hl_n">20</span>, <span class="hl_o">.</span><span class="hl_v">label</span> <span class="hl_o">=</span> <span class="hl_v">HARD_TITLE</span> },
  1053. { <span class="hl_o">.</span><span class="hl_v">type</span> <span class="hl_o">=</span> <span class="hl_v">UI_LABEL</span>, <span class="hl_o">.</span><span class="hl_v">flags</span> <span class="hl_o">=</span> <span class="hl_v">UI_NOBR</span>,
  1054. <span class="hl_o">.</span><span class="hl_v">y</span> <span class="hl_o">=</span> <span class="hl_n">5</span>, <span class="hl_o">.</span><span class="hl_v">label</span> <span class="hl_o">=</span> <span class="hl_v">VOLUME_TITLE</span> },
  1055. { <span class="hl_o">.</span><span class="hl_v">type</span> <span class="hl_o">=</span> <span class="hl_v">UI_SLIDER</span>, <span class="hl_o">.</span><span class="hl_v">ptr</span> <span class="hl_o">=</span> <span class="hl_o">&amp;</span><span class="hl_v">volume</span>, <span class="hl_o">.</span><span class="hl_v">max</span> <span class="hl_o">=</span> <span class="hl_n">100</span> },
  1056. { <span class="hl_o">.</span><span class="hl_v">type</span> <span class="hl_o">=</span> <span class="hl_v">UI_END</span> }
  1057. };
  1058. <span class="hl_v">ui_form_t</span> <span class="hl_v">form</span>[] <span class="hl_o">=</span> {
  1059. { <span class="hl_o">.</span><span class="hl_v">type</span> <span class="hl_o">=</span> <span class="hl_v">UI_POPUP</span>, <span class="hl_o">.</span><span class="hl_v">align</span> <span class="hl_o">=</span> <span class="hl_v">UI_CENTER</span> <span class="hl_o">|</span> <span class="hl_v">UI_MIDDLE</span>,
  1060. <span class="hl_o">.</span><span class="hl_v">ptr</span> <span class="hl_o">=</span> <span class="hl_o">&amp;</span><span class="hl_v">popup</span>,
  1061. <span class="hl_o">.</span><span class="hl_v">x</span> <span class="hl_o">=</span> <span class="hl_f">UI_PERCENT</span>(<span class="hl_n">50</span>), <span class="hl_o">.</span><span class="hl_v">y</span> <span class="hl_o">=</span> <span class="hl_f">UI_PERCENT</span>(<span class="hl_n">50</span>),
  1062. <span class="hl_o">.</span><span class="hl_v">m</span> <span class="hl_o">=</span> <span class="hl_n">10</span>, <span class="hl_o">.</span><span class="hl_v">label</span> <span class="hl_o">=</span> <span class="hl_v">POPUP_TITLE</span> },
  1063. { <span class="hl_o">.</span><span class="hl_v">type</span> <span class="hl_o">=</span> <span class="hl_v">UI_END</span> }
  1064. };
  1065. <span class="hl_c">/* UI kontextus inicializálása */</span>
  1066. <span class="hl_f">ui_init</span>(<span class="hl_o">&amp;</span><span class="hl_v">ctx</span>, <span class="hl_k">sizeof</span>(<span class="hl_v">lang</span>)<span class="hl_o">/</span><span class="hl_k">sizeof</span>(<span class="hl_v">lang</span>[<span class="hl_n">0</span>]), <span class="hl_v">lang</span>, <span class="hl_n">640</span>, <span class="hl_n">480</span>, <span class="hl_t">NULL</span>);
  1067. <span class="hl_c">/* várunk, amíg a felhasználó be nem zárja az ablakot */</span>
  1068. <span class="hl_k">while</span>(<span class="hl_f">ui_event</span>(<span class="hl_o">&amp;</span><span class="hl_v">ctx</span>, <span class="hl_v">form</span>)) {
  1069. <span class="hl_c">/* gomb lekezelése, ez akár másik szálban is lehetne */</span>
  1070. <span class="hl_k">if</span>(<span class="hl_v">button</span>) {
  1071. <span class="hl_f">printf</span>(<span class="hl_s">&quot;button clicked\n&quot;</span>);
  1072. <span class="hl_v">button</span> <span class="hl_o">=</span> <span class="hl_n">0</span>;
  1073. <span class="hl_f">ui_refresh</span>(<span class="hl_o">&amp;</span><span class="hl_v">ctx</span>);
  1074. }
  1075. }
  1076. <span class="hl_c">/* ablak bezárása, erőforrások felszabadítása */</span>
  1077. <span class="hl_f">ui_free</span>(<span class="hl_o">&amp;</span><span class="hl_v">ctx</span>);
  1078. <span class="hl_k">return</span> <span class="hl_n">0</span>;
  1079. }</code></div>
  1080. <p><img class="imgl" width="191" height="114" alt="example.png" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAL8AAAByCAYAAAACnABsAAAE70lEQVR42u2dsW6rMBRAnafsmdno2CkVQ9cwsfYPSNUv6fuRSvxGt3ZLB1SytFuzNSP5gr6lznMdA4ZAQu1zpEjBGELM8eWaBneSpumXAHCczWYjnp+fJ2rZVK4AcJmyLA/K/tAs4CvID94y1QuiKDqolOe5cb1aDvALuK+M/FLsPM/3L4QH0h4Al9OePM9FFEUiiqJ9hG+K9OrVokv61FQGcLLIr6Y6JoF1wU2pkU36BDDKtMdW2L4iNJ0CRpfzE7HBG/ltUh0ALyL/KZCdjU4HZ5VfH+zW3ZGxTZeq9mPzHmBIJmmafvHDNnCdsizFer3+O6q0B8DbnB8A+QGQHwD5AZAfAPkBkB8A+QGQHwD5AZAfAPkBjEzbVC6KwstGms/nmOKz/EVRiJubG+8aaLvditVqRQfwPfJLGXzi/f0dS8j5AZAfwM+0R+Xx8dFYniTJUfts2t6mDsCgkV8VcLlciuVyWdspbDtTEARH1QE4edrz+fm5f4+c4HTa0yaay6uEvmy6UmRZ1qlO1VXHtJ8kSX7UJY1C/s5IGWUKpBMEwcGVQS4nSSKCINjvQ92+TR0ps7ouy7IfYwQpvSyT+2QcQdrTGTXnz7Lsh+htUya5bCprqlO1zpSGmTokID85PyA/ADn/N6b/Z1q1ru2yaeB6fX3dqY5p3zZldccERP49Ly8vPwaWclkdcEox5Xp1WUdft1wuxeXlpXUd/bNMxwPQOfLrIupySt7e3mrryWW1nqmuvr6pTtUx1dWp+x6A/JWY5LSpV7edzT773t72ewBpDwDyAyA/gMs5/3a79e5JLkB+MZ/PxWq18rKReH6XyI8EQM4PgPwAyA+A/ADID4D8AMgPMC6mNMHv4+7ubv/+4eHB+c8dfeTf7XYHLxim3c4lngvC9x75d7td5eN/s9kMw2k3N+VXT+Bms9mXh2EoyrIUV1dX4uPjw+pSWhVh9DqmCNS0H7m+qWwM4tu0m+m7t203dbumlMbUvqQ936jim5abTpp8VZ20uvW2+3E1/+/abnq5TfsS+QccSHVZLyOXKoJrJ6pLHt6m81ftx1XxRyO/zQlsiuZqB/BJ/mPbzfVB7UnSnjAMa5dP1Yl8SnngzPLPZjMRx/FeePkSQog4jq0HbWrEaiuuvs1v6ABqu+l0aTdozyRN0y+bwWkTFxcXB2U2J7Dt3R71zoTpzo3tfsZyqe/SbnUdvapNTO1mcxfNtv3HTlmWYr1e/x1EfhfyYnAXk/ze/rYH8WHqm+y+3tkAj+VHdNDhJ82A/ADID4D8AMgPgPwAyA+A/ADID4D8AMgPMHJa/ban7xkQXJsECRyWv2/0KTNAiKenp4OyxWJBw5D2DE+XxyiHFL+uHEYY+fv47XzVI3dtHtPr83gkVRNNHUtRFI0dg/+JdngujpkoYTqU+Lqk6pw6Q3c400ROtsdjc4yvr69nO9nwnziOxTGP4DqR9thMVCWFZ4wBoxjwnqODAHSSX58W0MWHwJu+U1mW4vb2tvfPzbLM6jIPZ4z8LkwLeMyxh2EohpjqZbFY1N7V4XZn/3Set6duAGt7d8V2Cm2106n1bP/o9ptmbuA+/3A3C5i0CpD/G/7IBd6C/ID8AMgPgPwAyA+A/ADID4D8AMgPgPwAyA+A/ADID4D8AGNgutlsmBUAvGRiKLunWYC0BwD5AZAfwBn+AaqCPC8J0grEAAAAAElFTkSuQmCC"></p><br style="clear:both;"><label class="btn prev" accesskey="p" for="_egyedi" title="Egyedi">Előző</label><label class="btn next" accesskey="n" for="_finomhangolas" title="Finomhangolás">Következő</label></div>
  1081. <div class="page" rel="finomhangolas"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Főoldal"></label>&nbsp;»</li><li>&nbsp;Finomhangolás</li></ul><hr></div>
  1082. <h1 id="finomhangolas">Finomhangolás<a href="#finomhangolas"></a></h1>
  1083. <h2 id="alap">Alap<a href="#alap"></a></h2>
  1084. <p>Az SMGUI alaprendszere hangolható néhány define-al az <b>ui.h</b> behúzása előtt.</p>
  1085. <h3 id="ui_implementation">UI_IMPLEMENTATION<a href="#ui_implementation"></a></h3>
  1086. <div class="warn"><p><span>FIGYELEM</span></p><p> Ezt mindig a modulok behúzása után szabad csak definiálni.</p></div>
  1087. <p>Akkor kell megadni, ha nemcsak a prototípusokra, de az implementációra is szükség van.</p>
  1088. <h3 id="ui_noaa">UI_NOAA<a href="#ui_noaa"></a></h3>
  1089. <p>Anti-alias nélküli vonalat rajzol (kiiktatja a math.h és libm függőséget).</p>
  1090. <h3 id="ui_maxevents">UI_MAXEVENTS<a href="#ui_maxevents"></a></h3>
  1091. <p>A várakozó események maximális száma. Ha nincs megadva, alapértelmezetten 16.</p>
  1092. <h3 id="ui_maxpopups">UI_MAXPOPUPS<a href="#ui_maxpopups"></a></h3>
  1093. <p>A látható felugrók maximális száma. Ha nincs megadva, alapértelmezetten 16.</p>
  1094. <h3 id="ui_backend_initialized">UI_BACKEND_INITIALIZED<a href="#ui_backend_initialized"></a></h3>
  1095. <p>Ha a kódból már meg lett hívva a <samp>glfwInit()</samp> / <samp>glfwTerminate()</samp>, <samp>SDL_Init()</samp> / <samp>SDL_Quit()</samp> stb., akkor használatos.
  1096. Erre akkor van szükség, ha az SMGUI-val több ablakot is akarunk kezelni egyszerre.</p>
  1097. <h3 id="ui_backend_noflush">UI_BACKEND_NOFLUSH<a href="#ui_backend_noflush"></a></h3>
  1098. <p>Ha nem akarod, hogy az <samp>ui_event()</samp> érvényesítse a képet, hanem kódból magad hívod a <samp>glfwSwapBuffers()</samp> /
  1099. <samp>SDL_RenderPresent()</samp> / stb. függvényeket. Erre akkor van szükség, ha az UI réteg fölé még rajzolni szeretnénk.</p>
  1100. <h2 id="glfw3">GLFW3<a href="#glfw3"></a></h2>
  1101. <p>Függetlenül a GLFW3 motor is finomhangolható define-okkal, a <b>ui_glfw.h</b> behúzása előtt.</p>
  1102. <p>Alapból ez a motor OpenGL 3.3 core profile-os shaderekkel fordul, és egyaránt támogatja a <samp>glad</samp> és <samp>glew</samp> bővítménybetöltést.</p>
  1103. <h3 id="ui_glfw_noshader">UI_GLFW_NOSHADER<a href="#ui_glfw_noshader"></a></h3>
  1104. <p>A régi OpenGL API használata. Ez mindenhol működik és nem kell neki bővítménybetöltő se shader. A hátránya, hogy néhány videokártya
  1105. meghajtóban bugos a visszafele kompatibilitás, emiatt nem lehet már saját shadert se használni, ha ez az opció engedélyezve lett.</p>
  1106. <h3 id="ui_glfw_gles2">UI_GLFW_GLES2<a href="#ui_glfw_gles2"></a></h3>
  1107. <p>Használjon shadereket, de csak OpenGL ES 2.0-t (mobil platform verzió). Csak régi mobilok támogatásához, a mai modern eszközök
  1108. általában gond nélkül kezelik az OpenGL 3.3 core-t.</p>
  1109. <h3 id="ui_glfw_customhooks">UI_GLFW_CUSTOMHOOKS<a href="#ui_glfw_customhooks"></a></h3>
  1110. <p>Akkor használatos, ha magunk akarjuk a GLFW3 visszacsatolásokat megadni. Ekkor a visszacsatolásokból meg kell hívni
  1111. a motor visszacsatolásait is. Például:</p>
  1112. <div class="pre"><pre class="lineno">1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br>11<br></pre><code><span class="hl_c">/* visszacsatolás megadása a szokásos módon */</span>
  1113. <span class="hl_f">glfwSetMouseButtonCallback</span>(<span class="hl_f">ui_getwindow</span>(<span class="hl_v">ctx</span>), <span class="hl_v">my_glfw_mouse</span>);
  1114. <span class="hl_c">/* a visszacsatolásod */</span>
  1115. <span class="hl_t">void</span> <span class="hl_f">my_glfw_mouse</span>(<span class="hl_v">GLFWwindow</span> <span class="hl_o">*</span><span class="hl_v">window</span>, <span class="hl_t">int</span> <span class="hl_v">button</span>, <span class="hl_t">int</span> <span class="hl_v">action</span>, <span class="hl_t">int</span> <span class="hl_v">mods</span>)
  1116. {
  1117. <span class="hl_c">/* tetszőlegesen értelmezhető */</span>
  1118. <span class="hl_c">/* ... */</span>
  1119. <span class="hl_c">/* a végén meg kell hívni az ui_glfw visszacsatolását is */</span>
  1120. <span class="hl_f">ui_glfw_mouse</span>(<span class="hl_v">window</span>, <span class="hl_v">button</span>, <span class="hl_v">action</span>, <span class="hl_v">mods</span>);
  1121. }</code></div><br style="clear:both;"><label class="btn prev" accesskey="p" for="_pelda" title="Példa">Előző</label><label class="btn next" accesskey="n" for="_smgui_licensz" title="SMGUI Licensz">Következő</label></div>
  1122. <div class="page" rel="smgui_licensz"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Főoldal"></label>&nbsp;»</li><li>&nbsp;SMGUI Licensz</li></ul><hr></div>
  1123. <h1 id="smgui_licensz">SMGUI Licensz<a href="#smgui_licensz"></a></h1>
  1124. <p>A megengedő <b>MIT licensz</b> szerint kerül terjesztésre.</p>
  1125. <div class="pre"><pre>
  1126. A szabad felhasználás jogát ezennel ráruházom bármely személyre
  1127. aki jelen mű és dokumentációjának egy példányát (a továbbiakban
  1128. “Szoftver”) megszerezte, hogy a szoftvert korlátozás nélkül -
  1129. beleértve a használat, másolás, módosítás, kiadás, terjesztés,
  1130. és/vagy értékesítés jogát - felhasználhassa, és a továbbadott
  1131. példánnyal hasonlóan járhasson el, amennyiben a következő feltételek
  1132. teljesülnek:
  1133. A fenti szerzői jogot és felhasználási jogot biztosító szöveget
  1134. fel kell tüntetni a Szoftver minden teljes és rész másolataiban is.
  1135. A SZOFTVER “ÚGY, AHOGY VAN” KERÜL TERJESZTÉSE, MINDENNEMŰ JÓTÁLLÁS
  1136. NÉLKÜL, KÖZVETVE VAGY KÖZVETETTEN, BELEÉRTVE A KERESKEDELMI JÓTÁLLÁS
  1137. VAGY EGY ADOTT CÉLRA TÖRTÉNŐ FELHASZNÁLÁSRA ALKALMASSÁGOT. A SZERZŐI
  1138. JOG TULAJDONOSA SEMMILYEN KÖRÜLMÉNYEK KÖZÖTT NEM TEHETŐ FELELŐSSÉ
  1139. BÁRMILYEN MÓDON, BELEÉRVE A SZOFTVER RENDELTETÉSSZERŰ HASZNÁLATA
  1140. SORÁN, VAGY RENDELTETÉSSZERŰ HASZNÁLATTÓL ELTÉRŐ FELHASZNÁLÁS
  1141. SORÁN A SZOFTVER ÁLTAL ESETLEGESEN OKOZOTT KÁROKÉRT.
  1142. </pre></div><br style="clear:both;"><label class="btn prev" accesskey="p" for="_finomhangolas" title="Finomhangolás">Előző</label></div>
  1143. <footer><hr><p>© Copyright 2024 bzt (bztsrc@gitlab)<br><small>Generated by <a href="https://gitlab.com/bztsrc/gendoc">gendoc</a> v1.0.0</small></p></footer>
  1144. </div>
  1145. </div>
  1146. <script>function m(){document.getElementById("menuchk").checked=false;}function c(s){var r=document.getElementById(s);if(r!=undefined){if(r.tagName=="INPUT")r.checked=true;else document.getElementById("_"+r.parentNode.getAttribute("rel")).checked=true;}m();}function s(s){var r=document.getElementById("_s"),p=document.getElementById("_m").getElementsByClassName("page"),n,i,j,a,b,c,d;if(s){s=s.toLowerCase();document.getElementById("_t").style.display="none";r.style.display="block";while(r.firstChild)r.removeChild(r.firstChild);n=document.createElement("p");n.appendChild(document.createTextNode("Találatok"));r.appendChild(n);for(i=1;i<p.length;i++){a=p[i].getAttribute("rel");b="";c=p[i].childNodes;d=p[i].getElementsByTagName("H1")[0].innerText;for(j=1;j<c.length && c[j].className!="btn prev";j++){if(c[j].id!=undefined&&c[j].id!=""){a=c[j].id;d=c[j].innerText;}else if(a!=b&&c[j].innerText!=undefined&&c[j].innerText.toLowerCase().indexOf(s)!=-1){b=a;n=document.createElement("a");n.appendChild(document.createTextNode(d));n.setAttribute("href","#"+a);n.setAttribute("onclick","c('"+a+"');");r.appendChild(n);}}}}else{document.getElementById("_t").style.display="block";r.style.display="none";}}document.addEventListener("DOMContentLoaded",function(e){var i,r,n;document.getElementById("_q").style.display="inline-block";if(document.location.href.indexOf("?")!=-1)document.location.href=document.location.href.replace("?","#");else{r=document.querySelectorAll("LABEL:not(.menu)");while(r.length){l=r[0].getAttribute("for").substr(1);n=document.createElement("a");n.appendChild(document.createTextNode(r[0].innerText));n.setAttribute("href","#"+l);n.setAttribute("onclick","c('"+(l!=""?l:"_")+"');");if(r[0].getAttribute("class")!=undefined)n.setAttribute("class",r[0].getAttribute("class"));if(r[0].getAttribute("title")!=undefined&&l!="")n.setAttribute("title",r[0].getAttribute("title"));if(r[0].getAttribute("accesskey")!=undefined)n.setAttribute("accesskey",r[0].getAttribute("accesskey"));r[0].parentNode.replaceChild(n,r[0]);r=document.querySelectorAll("LABEL:not(.menu)");}try{c(document.location.href.split("#")[1]);}catch(e){}}});</script>
  1147. </body>
  1148. </html>