Visual Component Framework
વિઝ્યુઅલ કોમ્પોનન્ટ ફ્રેમવર્ક (વીસીએફ) એ માઇક્રોસોફ્ટ વિન્ડોઝ અને એપલ મેકિન્ટોશ હેઠળ વિકાસ માટે ત્યજી દેવાયેલ ઓપન સોર્સ પ્રોજેક્ટ છે જે બીએસડી લાઇસન્સ હેઠળ વિતરિત કરવામાં આવે છે. તે એક અદ્યતન C + + એપ્લિકેશન માળખું છે જે GUI-આધારિત C + + એપ્લિકેશન્સનું ઉત્પાદન કરવાનું સરળ બનાવે છે. માળખું સી + + ડિઝાઇન છે અને ઝડપી એપ્લિકેશન વિકાસ માટે સમર્થનમાં બનાવવામાં આવ્યું છે. માળખું બહુવિધ પ્લેટફોર્મ્સ અને કમ્પાઇલર્સ પર પોર્ટેબલ બનવા માટે રચાયેલ છે. માળખું વિન્ડોઝ અને મેક ઓએસ એક્સ હેઠળ ચાલે છે, પરંતુ 6 એપ્રિલ, 2006 સુધીમાં, મેક પોર્ટ અધૂરું હતું, અને લિનક્સ પોર્ટ હજુ બાકી હતું. આ પરિયોજનાએ વિવિધ કમ્પાઇલર્સ અને ઇન્ટિગ્રેટેડ ડેવલપમેન્ટ એન્વાયર્નમેન્ટ્સ (IDE) ને ટેકો આપવા માટે મોટા પ્રયાસો કર્યા છે, જે વિકાસકર્તાને તેઓ ગમે તે IDE/કમ્પાઇલરમાં કામ કરવાની મંજૂરી આપે છે. વિન્ડોઝ પર કમ્પાઇલર સપોર્ટ બોરલેન્ડ સી + + કમ્પાઇલર, ઇન્ટેલ સી + + કમ્પાઇલર અને જીસીસી સાથે માઈક્રોસોફ્ટ વિઝ્યુઅલ સી + + વર્ઝન 6,7,7.1 અને 8ને આવરી લે છે. મેક ઓએસ એક્સ પર જીસીસી એક્સકોડ આઈડીઈનો ઉપયોગ કરીને સપોર્ટેડ છે. કોડવોરિયર પોર્ટ પૂર્ણ થયું હતું, પરંતુ કોડવોરિયર દ્વારા કમ્પાઇલરના તેમના x86 વર્ઝન માટે અને પછીથી તેમના પાવરપીસી વર્ઝન માટે પણ ટેકો છોડવાને કારણે બંધ કરવામાં આવ્યું હતું. લાઇસન્સ માળખું તેના પર ચાલતા કોઈપણ પ્લેટફોર્મ માટે બીએસડી લાઇસન્સ હેઠળ લાઇસન્સ ધરાવે છે. ડિઝાઇન અને લક્ષ્યાંકો માળખું અનેક લક્ષ્યાંકોને ધ્યાનમાં રાખીને તૈયાર કરવામાં આવ્યું છે. એક છે વિન્ડોઝની બહારના અન્ય પ્લેટફોર્મ્સ પર પોર્ટ કરવાની ક્ષમતા, જેમ કે મેક ઓએસ એક્સ, બીઓએસ, અથવા કદાચ વિન્ડોઝ સીઇ જેવી એમ્બેડેડ ઓપરેટિંગ સિસ્ટમ્સ. આગળનું લક્ષ્ય બોરલેન્ડના ઓબ્જેક્ટ પાસ્કલ, જાવા અથવા ઓબ્જેક્ટિવ-સી જેવી ભાષાઓમાં જોવા મળતા ગતિશીલ પ્રોગ્રામિંગ માટે નક્કર સમર્થન પૂરું પાડવાનું છે. આમાં આરટીટીઆઈ અથવા પ્રતિબિંબ જેવા વર્ગોનો સમાવેશ થાય છે જે વિકાસકર્તાને રનટાઇમ પર આપેલ વર્ગના ઉદાહરણ વિશેની તમામ પ્રકારની માહિતીની પૂછપરછ કરવાની મંજૂરી આપે છે. બીજો ધ્યેય યુઆઈ વર્ગોની રચના કરવાનો હતો જેથી દ્રશ્ય પ્રોગ્રામિંગ અથવા ઝડપી એપ્લિકેશન વિકાસ શક્ય બને, જે ડેલ્ફીમાં જોવા મળે છે. આમાં મિલકત સંપાદકો, ઘટક સંપાદકો માટે સમર્થન, બાહ્ય લખાણ ફાઇલમાં અને તેમાંથી UI સ્થિતિની દ્રઢતા, અને ગતિશીલ સુવિધાઓનો ઉપયોગ કરીને વર્ગના ઉદાહરણો બનાવવા અને ઉદાહરણના નોંધાયેલા ગુણધર્મો મેળવવા અને સેટ કરવા માટે સમાવેશ થાય છે. આ ઉપરાંત, છેલ્લો ધ્યેય એપ્લિકેશન વિકસાવતી વખતે, ખાસ કરીને મોટા પાયે એપ્લિકેશનો માટે મોટી સંખ્યામાં સામાન્ય પ્રોગ્રામિંગ કાર્યો માટે ટેકો પૂરો પાડવાનો હતો. આમાં વિવિધ પ્રકારના આઈ. ઓ. (મેમરી, ફાઇલ/ડિસ્ક, વગેરેમાં), થ્રેડ સપોર્ટ અને મ્યુટેક્સ, સેમાફોર્સ અને શરતો જેવા વિવિધ સુમેળ પ્રિમિટિવ્સ, યુનિકોડ સ્ટ્રિંગ સપોર્ટ, સ્થાનિક સ્ટ્રિંગ સંસાધનો, વ્યાપક સંસાધન સપોર્ટ અને મૂળભૂત એક્સ. એમ. એલ. પાર્સિંગ સહિત લોકેલ અને આંતરરાષ્ટ્રીયકરણ સપોર્ટનો સમાવેશ થાય છે. ગ્રાફિક્સ સુવિધાઓમાં એન્ટિ-ગ્રેન ગ્રાફિક્સ લાઇબ્રેરીનો ઉપયોગ કરીને એન્ટિ-એલિયઝ્ડ ગ્રાફિક્સ, સંપૂર્ણ એફાઇન ટ્રાન્સફોર્મેશન સપોર્ટ, છબીના પિક્સેલ બિટ્સની સીધી ઍક્સેસ સાથેની છબીઓનો સમાવેશ થાય છે. વધારાની એપ્લિકેશન સપોર્ટ સુવિધાઓમાં વર્ગોને પૂર્વવત્/ફરીથી કરવા, મોડલ વ્યૂ કંટ્રોલર માટે અદ્યતન સપોર્ટનો પણ સમાવેશ થાય છે. સામાન્ય નિયમ તરીકે, માળખું પ્રમાણભૂત નમૂના પુસ્તકાલયનો શક્ય તેટલો ઉપયોગ કરે છે, કન્ટેનર વર્ગો અથવા સ્ટ્રિંગ હેન્ડલિંગ જેવી વસ્તુઓ પર કામનું પુનરાવર્તન ટાળે છે. જ્યાં શક્ય હોય ત્યાં માળખું મૂળ સી + + આરટીટીઆઈ આધારની ટોચ પર બને છે જેમ કે ડાયનેમિક કાસ્ટ અને ટાઇપઆઈડીનો ઉપયોગ કરીને, તેને ફરીથી અમલમાં મૂકવાના વિરોધમાં. મોટાભાગની OS ઑબ્જેક્ટ્સ, જેમ કે ફાઇલો, થ્રેડો, ગ્રાફિક્સ ઉપકરણો અને વિન્ડો કંટ્રોલ્સ (અથવા વિજેટ્સ), અને તેથી વધુ, પાતળા સ્તરનો ઉપયોગ કરીને અમલમાં મૂકવામાં આવે છે જે ચોક્કસ મૂળ ઑબ્જેક્ટ સાથે સીધી વાત કરે છે. UI નિયંત્રણો મોટાભાગે અનુકરણ કરવામાં આવતા નથી, તેના બદલે માળખું મોટાભાગે મૂળ વિજેટ્સનો ઉપયોગ કરે છે. જ્યાં પ્લેટફોર્મ વિશિષ્ટ કાર્યક્ષમતાની જરૂર હોય તેવા કિસ્સાઓમાં અંતર્ગત OS "હેન્ડલ" ની સીધી પહોંચને મંજૂરી આપવામાં આવે છે, જે વિકાસકર્તાને પ્લેટફોર્મના મૂળ API ને સરળતાથી કૉલ કરવાની મંજૂરી આપે છે. સોફ્ટવેર ઘટક વિજેટ ટૂલકિટ વિજેટ ટૂલકિટની યાદી વિજેટ ટૂલકિટની સૂચિ Qt wxWidgets Motif GTK + Gtkmm FLTK FOX ટૂલકિટ અલ્ટીમેટ + + બાહ્ય કડીઓ VCF સંદર્ભ દસ્તાવેજીકરણ VCF સ્રોત દસ્તાવેજીકરણ VCF બિલ્ડર હોમપેજ એન્ટી-ગ્રેન ગ્રાફિક્સ લાઇબ્રેરી સોફ્ટવેર બીએસડી લાઇસન્સ વિજેટ ટૂલકિટનો ઉપયોગ કરીને