├── README.md ├── TextieEditor_0.9.6.0_x86_x64_arm.appxbundle ├── bitcoin_qr_code.png ├── download-hy.html ├── download-ru.html ├── download.html ├── index-hy.html ├── index-ru.html ├── index.html ├── onitorLightTheme.css ├── script.js ├── site_assets ├── favicon.ico └── logo.png ├── style.css └── textie ├── TextieEditor.sln └── textie ├── App.xaml ├── App.xaml.cs ├── Assets ├── Associations │ ├── textie_all.targetsize-129.png │ ├── textie_all.targetsize-16.png │ ├── textie_all.targetsize-256.png │ ├── textie_all.targetsize-32.png │ ├── textie_all.targetsize-336.png │ ├── textie_all.targetsize-48.png │ ├── textie_all.targetsize-63.png │ ├── textie_htm.targetsize-129.png │ ├── textie_htm.targetsize-16.png │ ├── textie_htm.targetsize-256.png │ ├── textie_htm.targetsize-32.png │ ├── textie_htm.targetsize-336.png │ ├── textie_htm.targetsize-48.png │ ├── textie_htm.targetsize-63.png │ ├── textie_rtf.targetsize-129.png │ ├── textie_rtf.targetsize-16.png │ ├── textie_rtf.targetsize-256.png │ ├── textie_rtf.targetsize-32.png │ ├── textie_rtf.targetsize-336.png │ ├── textie_rtf.targetsize-48.png │ ├── textie_rtf.targetsize-63.png │ ├── textie_txt.targetsize-129.png │ ├── textie_txt.targetsize-16.png │ ├── textie_txt.targetsize-256.png │ ├── textie_txt.targetsize-32.png │ ├── textie_txt.targetsize-336.png │ ├── textie_txt.targetsize-48.png │ └── textie_txt.targetsize-63.png ├── JumpList │ ├── OpenFile.scale-100.png │ ├── OpenFile.scale-100_contrast-black.png │ ├── OpenFile.scale-100_contrast-white.png │ ├── OpenFile.scale-125.png │ ├── OpenFile.scale-125_contrast-black.png │ ├── OpenFile.scale-125_contrast-white.png │ ├── OpenFile.scale-150.png │ ├── OpenFile.scale-150_contrast-black.png │ ├── OpenFile.scale-150_contrast-white.png │ ├── OpenFile.scale-200.png │ ├── OpenFile.scale-200_contrast-black.png │ ├── OpenFile.scale-200_contrast-white.png │ ├── OpenFile.scale-400.png │ ├── OpenFile.scale-400_contrast-black.png │ └── OpenFile.scale-400_contrast-white.png ├── LargeTile.scale-100.png ├── LargeTile.scale-125.png ├── LargeTile.scale-150.png ├── LargeTile.scale-200.png ├── LargeTile.scale-400.png ├── SmallTile.scale-100.png ├── SmallTile.scale-125.png ├── SmallTile.scale-150.png ├── SmallTile.scale-200.png ├── SmallTile.scale-400.png ├── SocialMedia │ ├── GitHub.png │ └── Twitter.png ├── SplashScreen.scale-100.png ├── SplashScreen.scale-125.png ├── SplashScreen.scale-150.png ├── SplashScreen.scale-200.png ├── SplashScreen.scale-400.png ├── Square150x150Logo.scale-100.png ├── Square150x150Logo.scale-125.png ├── Square150x150Logo.scale-150.png ├── Square150x150Logo.scale-200.png ├── Square150x150Logo.scale-400.png ├── Square44x44Logo.altform-lightunplated_targetsize-16.png ├── Square44x44Logo.altform-lightunplated_targetsize-256.png ├── Square44x44Logo.altform-lightunplated_targetsize-32.png ├── Square44x44Logo.altform-lightunplated_targetsize-48.png ├── Square44x44Logo.altform-unplated_targetsize-16.png ├── Square44x44Logo.altform-unplated_targetsize-256.png ├── Square44x44Logo.altform-unplated_targetsize-32.png ├── Square44x44Logo.altform-unplated_targetsize-48.png ├── Square44x44Logo.scale-100.png ├── Square44x44Logo.scale-125.png ├── Square44x44Logo.scale-150.png ├── Square44x44Logo.scale-200.png ├── Square44x44Logo.scale-400.png ├── Square44x44Logo.targetsize-16.png ├── Square44x44Logo.targetsize-24.png ├── Square44x44Logo.targetsize-24_altform-lightunplated.png ├── Square44x44Logo.targetsize-24_altform-unplated.png ├── Square44x44Logo.targetsize-256.png ├── Square44x44Logo.targetsize-32.png ├── Square44x44Logo.targetsize-48.png ├── StoreLogo.scale-100.png ├── StoreLogo.scale-125.png ├── StoreLogo.scale-150.png ├── StoreLogo.scale-200.png ├── StoreLogo.scale-400.png ├── Wide310x150Logo.scale-100.png ├── Wide310x150Logo.scale-125.png ├── Wide310x150Logo.scale-150.png ├── Wide310x150Logo.scale-200.png ├── Wide310x150Logo.scale-400.png └── segmdl2.ttf ├── Classes ├── Item.cs ├── RichEditBoxCore.cs ├── RichEditBoxCoreText.cs ├── RichEditBoxMenu.cs ├── RichEditBoxPivot.cs └── RichEditBoxPivotItem.cs ├── Package.appxmanifest ├── Pages ├── FlagsPage.xaml ├── FlagsPage.xaml.cs ├── MainPage.xaml ├── MainPage.xaml.cs ├── SettingsPage.xaml └── SettingsPage.xaml.cs ├── Properties ├── AssemblyInfo.cs └── Default.rd.xml ├── Strings ├── en-US │ └── Resources.resw ├── hy-AM │ └── Resources.resw ├── ru-RU │ └── Resources.resw └── sv-SE │ └── Resources.resw ├── Styles └── Styles.xaml ├── TextieEditor.csproj └── TextieEditor.csproj.user /README.md: -------------------------------------------------------------------------------- 1 | # Textie Editor [![Tweet](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Textie%20Editor%20source%20code%20on%20Github&url=https://github.com/10Develops/textie&via=10develops&hashtags=textieeditor,10develops,uwp) 2 |

Free source code and text editor app. Textie has an comfortable UX, you can easily use multi-tabbing with swipe to change tab on causel!

3 | 4 | ## Announcements 5 | * Announcing Textie Editor for HaikuOS! 6 | * Announcing Textie Editor 0.9.7 for UWP (Windows 11, Windows 10, Windows 10 Mobile)! 7 | 8 | ## Features 9 | * Tabbed editing 10 | * Light and dark themes support 11 | * Open and Save 12 | * Auto-save 13 | * Save as and Save all 14 | * Undo and Redo 15 | * Regex-based Find and Replace 16 | * Cut, Copy and Paste 17 | * Select All 18 | * Highlight text 19 | * Syntax highlighting (beta) 20 | * Uppercase and Lowercase text 21 | * Search text with search engines (Bing, Google, and Yahoo) 22 | * Trimming and Word wrap 23 | * Insert tab, date and time, file name and file path and manipulate Home and End keys 24 | * Print 25 | * Share 26 | * Pin file to Start 27 | * Hot Exit for Unsaved Files (opens unsaved files when app launched again) 28 | * Recent Files 29 | 30 | ## Donate 31 | 32 | 33 | 34 | 35 | 36 | 37 |
BitcoinBitcoin QR code148grYTkmWABsGzFHQp8MHmkqTiv4ZJYBu
38 | 39 | ## How to use 40 | Add a reference to UnitedCodebase (link). 41 | -------------------------------------------------------------------------------- /TextieEditor_0.9.6.0_x86_x64_arm.appxbundle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/TextieEditor_0.9.6.0_x86_x64_arm.appxbundle -------------------------------------------------------------------------------- /bitcoin_qr_code.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/bitcoin_qr_code.png -------------------------------------------------------------------------------- /download-hy.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Textie Editor 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 24 | 38 |
39 |

Ներկայիս տարբերակը՝ 0.9.6
Հաջորդ տարբերակը՝ 0.9.7

40 |
41 |
42 | 43 |

Textie Editor

44 |
45 |

Տեղադրում

46 |

Appxbundle տեղադրում

47 |

Սեղմեք ներբեռնել appxbundle ֆայլի ներբեռնման համար: Նաև, փոխեք համակարգի տարեթիվը 2020-ով, քանի որ վերջին տարբերակի արտոնագրի ժամկետը լրացել է (շարժականի վրա կարիք չկա):
48 | Աշխատասեղանային Windows 10 1607-ի և ավելի ուշի համար, դուք պետք է ստանաք հավելման ստորագրված արտոնագիրը և բացեք appxbundle ֆայլը:
49 | Ավելին իմանալու համար տես 50 | Windows RT-ում մշակողի փաթեթների տեղադրում (անգլերեն):
51 | Կամ կարող եք ներբեռնել ամբողջական փաթեթը և աշխատացնել Add-AppDevPackage.ps1-ը աշխատասեղանային Windows 10-ի բոլոր տարբերակներում:
52 | Ներբեռնված Textie Editor-ի փաթեթը տեղադրելու համար նախ համոզվեք, որ կողաբեռնման կամ մշակողի ռեժիմը միացված է:
53 | Կողաբեռնման կամ մշակողի ռեժիմը միացնելու համար, մտեք Կարգավորում > Արդիացում և Անվտանգություն > Մշակողների համար և ընտրեք Կողաբեռնված գործադիրներ կամ Մշակողի ռեժիմ:
54 | Եթե կողաբեռնման կամ մշակողի ռեժիմն ընտրված է, 55 | դուք կզգուշացվեք, որ անվստահելի աղբյուրներից հավելման տեղադրումը կարող է բացահայտել Ձեր սարքը և տվյալները, 56 | կամ վնասել Ձեր սարքը, սեղմեք այո: Աշխատասեղանային տարբերակներում, Windows-ը կարող է ներբեռնել մշակողի փաթեթները, սպասեք մինչև ավարտը:
Հիմա, դուք կարող եք տեղադրել Textie Editor-ի appxbundle-ը: 57 | Սեղմեք ներբեռնված appxbundle-ի վրա և կցուցադրվի տեղադրման պատուհանը, սեղմեք տեղադրել և սպասեք, 58 | եթե հավելումը չի հայտնվել բոլոր հավելումների ցանկում, փորձեք նորից:
59 | Հիմա Textie Editor հավելումը տեղադրված է:

60 | 70 |
71 |
72 | 77 | 78 | 79 | 80 | -------------------------------------------------------------------------------- /download-ru.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Textie Editor 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 23 | 37 |
38 |

Текущая версия: 0.9.6
Следующая версия: 0.9.7

39 |
40 |
41 | 42 |

Textie Editor

43 |
44 |

Установка

45 |

Установка Appxbundle

46 |

Нажмите скачать для скачивания appxbundle файла. Также измените системную дату на 2020, потому что срок действия сертификата последней версии истёк (нет необходимости в мобильном).
47 | Для настлольного Windows 10 1607 или позже, вам надо получать сертификат, подписанной приложением и открыть appxbundle файл.
48 | Подробнее смотрите: 49 | Установка пакетов разработчика на Windows RT (на английском).
50 | Или вы можите загрузить полный пакет и запустить Add-AppDevPackage.ps1 на всех версиях настольной Windows 10.
51 | Чтобы устаовить скачанный пакет Textie Editor, сначала убедитесь что сайдлоадинг или режим разработчика включен.
52 | Чтобы включить сайдлоадинг или режим разработчика, перейдите в Параметры > Обновление и безопасность > Для разработчиков и поставьте Неопубликованные приложения или Режим разработчика.
53 | Если сайдлоадинг или режим разработчика выбрано, 54 | вы получите предупреждение что установка из недоверенных источников может разоблачать ваше устройство и данные, 55 | или повредить ваше устройство, нажмите да. На настольных версиях, Windows может загрузить пакеты разработчика, ждите до завершения.
Теперь вы можите установить appxbundle Textie Editor. 56 | Нажмите на загруженною appxbundle и будет показано окно установки, нажмите установить и ждите, 57 | если приложение не появился в списке всех приложений, попробуйте снова.
58 | Теперь приложение Textie Editor установлено.

59 | 69 |
70 |
71 | 76 | 77 | 78 | 79 | -------------------------------------------------------------------------------- /download.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Textie Editor 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 23 | 37 |
38 |

Current version: 0.9.6
Next version: 0.9.7

39 |
40 |
41 | 42 |

Textie Editor

43 |
44 |

Installation

45 |

Appxbundle Installation

46 |

Click download to download the appxbundle file. Also change the system date to 2020, because of the certificate of last version has expired (no need on mobile).
47 | For desktop Windows 10 1607 or later, you need to obtain the Certificate that signed the App and open the appxbundle file.
48 | For more info, see 49 | Installing developer packages on Windows RT.
50 | Or you can download the full package and run Add-AppDevPackage.ps1 on all versions of desktop Windows 10.
51 | To install downloaded Textie Editor package, first make sure if sideloading or developer mode is enabled.
52 | To enable sideloading or developer mode, go to Settings > Update & Security > For Developers and set Sideload apps or Developer mode.
53 | If sideloading or developer mode is selected, 54 | you will be receive a warning that installing app from untrusted sources could expose your device and data, 55 | or harm your device, click yes. On desktop versions, the Windows might download developer packages, wait until completion.
Now you can install Textie Editor appxbundle. 56 | Click to downloaded appxbundle and you'll be shown installation window, click install and wait, 57 | if the app is not appeared in all apps list, try again.
58 | Now Textie Editor app is installed.

59 |
60 | 61 | 62 | 63 | 64 | 68 |
69 |
70 |
71 | 76 | 77 | 78 | 79 | -------------------------------------------------------------------------------- /index-hy.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Textie Editor 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 25 | 39 |
40 |

Ներկայիս տարբերակը՝ 0.9.6
Հաջորդ տարբերակը՝ 0.9.7

41 |
42 |
43 | 44 |

Textie Editor

45 |
46 |

UWP անվճար աղբյուրի կոդի և տեքստային խմբագրիչ հավելում:

47 |

Հատկություններ

48 |
49 |
    50 |
  • Ներդիրներով խմբագրում
  • 51 |
  • Բացել և պահպանել
  • 52 |
  • Ինքնապահպանել, պահպանել որպես և պահպանել բոլորը
  • 53 |
  • Հետարկել և վերարկել
  • 54 |
  • Փնտրել և փոխարինել
  • 55 |
  • Որոնել տեքստը որոնման համակարգերում
  • 56 |
  • Տպել, կիսվել, ամրացնել ֆայլը սկզբնական էկրանին
  • 57 |
  • «Hot Exit» չպահպանված ֆայլերի համար
  • 58 |
  • Վերջին ֆայլերը
  • 59 |
  • Ժամանակակից UI և հարմարավետ UX
  • 60 |
61 |
62 |
63 |
64 | 69 | 70 | 71 | 72 | 73 | -------------------------------------------------------------------------------- /index-ru.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Textie Editor 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 25 | 39 |
40 |

Текущая версия: 0.9.6
Следующая версия: 0.9.7

41 |
42 |
43 | 44 |

Textie Editor

45 |
46 |

Бесплатный UWP приложение для редактирования исходного кода и текста.

47 |

Функции

48 |
49 |
    50 |
  • Редактирование с вкладками
  • 51 |
  • Открыть и сохранить
  • 52 |
  • Автосохранение, сохранить как и сохранить все
  • 53 |
  • Отменить и вернуть
  • 54 |
  • Найти и заменить
  • 55 |
  • Поиск текста с помощью поисковых систем
  • 56 |
  • Распечатать, поделиться, закрепить файл на начальном экране
  • 57 |
  • «Hot Exit» для несохраннёных файлов
  • 58 |
  • Последние файлы
  • 59 |
  • Современный UI b удобный UX
  • 60 |
61 |
62 |
63 |
64 | 69 | 70 | 71 | 72 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Textie Editor 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 24 | 38 |
39 |

Current version: 0.9.6
Next version: 0.9.7

40 |
41 |
42 | 43 |

Textie Editor

44 |
45 |

UWP free source code and text editor app.

46 |

Features

47 |
48 |
    49 |
  • Tabbed editing
  • 50 |
  • Open and Save
  • 51 |
  • Auto-save, Save as and Save all
  • 52 |
  • Undo and Redo
  • 53 |
  • Find and Replace
  • 54 |
  • Search text with search engines
  • 55 |
  • Print, Share, Pin file to Start menu
  • 56 |
  • Hot Exit for Unsaved Files
  • 57 |
  • Recent Files
  • 58 |
  • Modern UI and comfortable UX
  • 59 |
60 |
61 |
62 |
63 | 68 | 69 | 70 | 71 | -------------------------------------------------------------------------------- /onitorLightTheme.css: -------------------------------------------------------------------------------- 1 | body[onitor-theme='light'] 2 | { 3 | background: white; 4 | } 5 | 6 | a[onitor-theme='light'] 7 | { 8 | color: #808033; 9 | } 10 | 11 | h1[onitor-theme='light'], h2[onitor-theme='light'], h3[onitor-theme='light'], p[onitor-theme='light'] 12 | { 13 | color: black; 14 | } 15 | 16 | li[onitor-theme='light'] 17 | { 18 | color: black; 19 | background: #E6E6E6; 20 | } 21 | 22 | .navbar[onitor-theme='light'] 23 | { 24 | border: 2px solid black; 25 | } 26 | 27 | #text[onitor-theme='light'] 28 | { 29 | border: 1.5px solid black; 30 | background: #E6E6E6; 31 | } 32 | 33 | .splitbutton[onitor-theme='light'] 34 | { 35 | border-color: black; 36 | background: #02BB5B; 37 | color: black; 38 | } 39 | 40 | .splitbutton-dropdown-content[onitor-theme='light'] 41 | { 42 | border: 2px solid black; 43 | background: #E6E6E6; 44 | } -------------------------------------------------------------------------------- /script.js: -------------------------------------------------------------------------------- 1 | var lastMenu, menuSender; 2 | window.onload = function(){ 3 | document.onclick = function(e){ 4 | console.log(menuSender); 5 | if(e.target != menuSender && lastMenu != undefined){ 6 | lastMenu.style.display = null; 7 | } 8 | }; 9 | }; 10 | 11 | function ShowDropdown(e, className){ 12 | var visible = lastMenu != undefined && lastMenu.style.display == "block"; 13 | if(lastMenu != undefined && visible && e.tagName != "LI"){ 14 | lastMenu.style.display = null; 15 | } 16 | 17 | if(!visible){ 18 | lastMenu = document.getElementsByClassName(className)[0]; 19 | menuSender = e; 20 | lastMenu.style.display = "block"; 21 | } 22 | } -------------------------------------------------------------------------------- /site_assets/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/site_assets/favicon.ico -------------------------------------------------------------------------------- /site_assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/site_assets/logo.png -------------------------------------------------------------------------------- /style.css: -------------------------------------------------------------------------------- 1 | * 2 | { 3 | font-family: Segoe UI; 4 | } 5 | 6 | body 7 | { 8 | background: black; 9 | overflow-y: auto; 10 | } 11 | 12 | /*ul*/ 13 | 14 | li{ 15 | color: white; 16 | background: #1F1F1F; 17 | } 18 | 19 | a 20 | { 21 | color: #FF9; 22 | } 23 | 24 | b 25 | { 26 | margin-top: -40px; 27 | } 28 | 29 | h1, h2, h3, p 30 | { 31 | color: white; 32 | } 33 | 34 | #menu-left 35 | { 36 | position: absolute; 37 | top: -8px; 38 | left: -25px; 39 | } 40 | 41 | #menu-right 42 | { 43 | position: absolute; 44 | top: 20px; 45 | right: 2px; 46 | z-index: 2; 47 | } 48 | 49 | .navbar 50 | { 51 | display: block; 52 | float: left; 53 | text-align: center; 54 | padding: 4px; 55 | border: 2px solid white; 56 | border-radius: 4px; 57 | margin-left: 4px; 58 | margin-bottom: 2px; 59 | width: 80px; 60 | height: 20px; 61 | } 62 | 63 | .dropdown 64 | { 65 | width: 80px; 66 | height: 19px; 67 | position: relative; 68 | right: 20%; 69 | } 70 | 71 | .dropdown-content 72 | { 73 | display: none; 74 | position: absolute; 75 | top: 100%; 76 | left: -46px; 77 | padding-top: 4px; 78 | } 79 | 80 | .dropdown:hover .dropdown-content 81 | { 82 | display: block; 83 | } 84 | 85 | #current-version 86 | { 87 | position: absolute; 88 | top: 50px; 89 | left: auto; 90 | } 91 | 92 | #text 93 | { 94 | position: relative; 95 | background: #1F1F1F; 96 | margin-top: 3cm; 97 | margin-bottom: 18mm; 98 | margin-left: auto; 99 | margin-right: auto; 100 | max-width: calc(22vw + 400px); 101 | width: calc(88% - 12vw + 60px); 102 | min-height: calc(24vw + 160px); 103 | border: 1.5px solid white; 104 | padding: 2px; 105 | padding-bottom: 8px; 106 | } 107 | 108 | #logo 109 | { 110 | position: relative; 111 | margin-top: 12px; 112 | margin-left: 10px; 113 | float: left; 114 | } 115 | 116 | #header 117 | { 118 | font-size: 26px; 119 | margin-top: 12px; 120 | margin-right: 4%; 121 | position: relative; 122 | text-align: center; 123 | } 124 | 125 | #center-text 126 | { 127 | text-align: center; 128 | } 129 | 130 | #container-clist 131 | { 132 | height: auto; 133 | margin: 0 auto; 134 | max-width: 600px; 135 | } 136 | 137 | .column-list 138 | { 139 | text-align: left; 140 | column-count: 2; 141 | column-gap: 1.6vw; 142 | } 143 | 144 | .splitbutton-action 145 | { 146 | border-radius: 4px 0 0 4px; 147 | margin-right: -8px; 148 | width: 78px; 149 | cursor: pointer; 150 | } 151 | 152 | .splitbutton 153 | { 154 | border-color: white; 155 | border-style: solid; 156 | border-width: 2px 2px 2px 2px; 157 | background: #014421; 158 | color: white; 159 | height: 38px; 160 | } 161 | 162 | .splitbutton-dropdownmenu 163 | { 164 | display: inline-block; 165 | } 166 | 167 | .splitbutton-dropdown 168 | { 169 | border-radius: 0 4px 4px 0; 170 | display: inline-block; 171 | width: 28px; 172 | } 173 | 174 | .splitbutton-dropdown-content 175 | { 176 | display: none; 177 | position: absolute; 178 | border: 2px solid white; 179 | border-radius: 4px; 180 | background: #1F1F1F; 181 | margin-top: 1px; 182 | margin-left: -35.6px; 183 | z-index: 1; 184 | } 185 | 186 | .splitbutton-dropdown-content a 187 | { 188 | text-align: center; 189 | padding: 4px; 190 | display: block; 191 | } 192 | 193 | #getit 194 | { 195 | position: absolute; 196 | right: 6px; 197 | } 198 | 199 | @media only screen and (min-width: 350px) { 200 | #menu-right 201 | { 202 | top: -8px; 203 | } 204 | } 205 | 206 | @media only screen and (min-height: 1200px) { 207 | #text{ 208 | min-height: calc(20em + 8vw); 209 | } 210 | } 211 | 212 | @media only screen and (orientation:landscape) { 213 | #menu-right 214 | { 215 | top: -8px; 216 | } 217 | 218 | #current-version 219 | { 220 | position: absolute; 221 | top: 95px; 222 | right: 10px; 223 | max-width: 16vw; 224 | word-wrap: break-word; 225 | } 226 | 227 | #text 228 | { 229 | margin-top: calc(6.5vw + 6mm); 230 | margin-left: auto; 231 | margin-right: auto; 232 | margin-bottom: calc(4.4vh + 6.6vw + 20px); 233 | max-width: calc(48vw); 234 | width: calc(62% - 12vw); 235 | min-height: calc(22vw + 120px); 236 | } 237 | } 238 | 239 | @media (prefers-color-scheme: light) { 240 | body 241 | { 242 | background: white; 243 | } 244 | 245 | a 246 | { 247 | color: #808033; 248 | } 249 | 250 | h1, h2, h3, p 251 | { 252 | color: black; 253 | } 254 | 255 | li 256 | { 257 | color: black; 258 | background: #E6E6E6; 259 | } 260 | 261 | .navbar 262 | { 263 | border: 2px solid black; 264 | } 265 | 266 | #text 267 | { 268 | border: 1.5px solid black; 269 | background: #E6E6E6; 270 | } 271 | 272 | .splitbutton 273 | { 274 | border-color: black; 275 | background: #02BB5B; 276 | color: black; 277 | } 278 | 279 | .splitbutton-dropdown-content 280 | { 281 | border: 2px solid black; 282 | background: #E6E6E6; 283 | } 284 | } 285 | 286 | @media only screen and (min-width: 2400px) { 287 | #text{ 288 | max-width: calc(26em + 22vw); 289 | min-height: calc(22em + 8vw); 290 | } 291 | } -------------------------------------------------------------------------------- /textie/TextieEditor.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 15 4 | VisualStudioVersion = 15.0.28307.902 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TextieEditor", "textie\TextieEditor.csproj", "{9FC371F9-CA74-4D0D-97DB-E96BAA188129}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|ARM = Debug|ARM 11 | Debug|ARM64 = Debug|ARM64 12 | Debug|x64 = Debug|x64 13 | Debug|x86 = Debug|x86 14 | Release|ARM = Release|ARM 15 | Release|ARM64 = Release|ARM64 16 | Release|x64 = Release|x64 17 | Release|x86 = Release|x86 18 | EndGlobalSection 19 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 20 | {9FC371F9-CA74-4D0D-97DB-E96BAA188129}.Debug|ARM.ActiveCfg = Debug|ARM 21 | {9FC371F9-CA74-4D0D-97DB-E96BAA188129}.Debug|ARM.Build.0 = Debug|ARM 22 | {9FC371F9-CA74-4D0D-97DB-E96BAA188129}.Debug|ARM.Deploy.0 = Debug|ARM 23 | {9FC371F9-CA74-4D0D-97DB-E96BAA188129}.Debug|ARM64.ActiveCfg = Debug|ARM64 24 | {9FC371F9-CA74-4D0D-97DB-E96BAA188129}.Debug|ARM64.Build.0 = Debug|ARM64 25 | {9FC371F9-CA74-4D0D-97DB-E96BAA188129}.Debug|ARM64.Deploy.0 = Debug|ARM64 26 | {9FC371F9-CA74-4D0D-97DB-E96BAA188129}.Debug|x64.ActiveCfg = Debug|x64 27 | {9FC371F9-CA74-4D0D-97DB-E96BAA188129}.Debug|x64.Build.0 = Debug|x64 28 | {9FC371F9-CA74-4D0D-97DB-E96BAA188129}.Debug|x64.Deploy.0 = Debug|x64 29 | {9FC371F9-CA74-4D0D-97DB-E96BAA188129}.Debug|x86.ActiveCfg = Debug|x86 30 | {9FC371F9-CA74-4D0D-97DB-E96BAA188129}.Debug|x86.Build.0 = Debug|x86 31 | {9FC371F9-CA74-4D0D-97DB-E96BAA188129}.Debug|x86.Deploy.0 = Debug|x86 32 | {9FC371F9-CA74-4D0D-97DB-E96BAA188129}.Release|ARM.ActiveCfg = Release|ARM 33 | {9FC371F9-CA74-4D0D-97DB-E96BAA188129}.Release|ARM.Build.0 = Release|ARM 34 | {9FC371F9-CA74-4D0D-97DB-E96BAA188129}.Release|ARM.Deploy.0 = Release|ARM 35 | {9FC371F9-CA74-4D0D-97DB-E96BAA188129}.Release|ARM64.ActiveCfg = Release|ARM64 36 | {9FC371F9-CA74-4D0D-97DB-E96BAA188129}.Release|ARM64.Build.0 = Release|ARM64 37 | {9FC371F9-CA74-4D0D-97DB-E96BAA188129}.Release|ARM64.Deploy.0 = Release|ARM64 38 | {9FC371F9-CA74-4D0D-97DB-E96BAA188129}.Release|x64.ActiveCfg = Release|x64 39 | {9FC371F9-CA74-4D0D-97DB-E96BAA188129}.Release|x64.Build.0 = Release|x64 40 | {9FC371F9-CA74-4D0D-97DB-E96BAA188129}.Release|x64.Deploy.0 = Release|x64 41 | {9FC371F9-CA74-4D0D-97DB-E96BAA188129}.Release|x86.ActiveCfg = Release|x86 42 | {9FC371F9-CA74-4D0D-97DB-E96BAA188129}.Release|x86.Build.0 = Release|x86 43 | {9FC371F9-CA74-4D0D-97DB-E96BAA188129}.Release|x86.Deploy.0 = Release|x86 44 | EndGlobalSection 45 | GlobalSection(SolutionProperties) = preSolution 46 | HideSolutionNode = FALSE 47 | EndGlobalSection 48 | GlobalSection(ExtensibilityGlobals) = postSolution 49 | SolutionGuid = {0B86B80B-056D-40C8-99C8-8B59AED78A6B} 50 | EndGlobalSection 51 | EndGlobal 52 | -------------------------------------------------------------------------------- /textie/textie/App.xaml: -------------------------------------------------------------------------------- 1 |  5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /textie/textie/App.xaml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Windows.ApplicationModel; 3 | using Windows.ApplicationModel.Activation; 4 | using Windows.UI.Xaml; 5 | using Windows.UI.Xaml.Controls; 6 | using Windows.UI.Xaml.Navigation; 7 | using Windows.Storage; 8 | using Windows.UI.StartScreen; 9 | using System.Threading.Tasks; 10 | using Windows.Foundation.Metadata; 11 | using Windows.UI.Core; 12 | 13 | namespace Textie 14 | { 15 | /// 16 | /// Provides application-specific behavior to supplement the default Application class. 17 | /// 18 | public sealed partial class App : Application 19 | { 20 | /// 21 | /// Initializes the singleton application object. This is the first line of authored code 22 | /// executed, and as such is the logical equivalent of main() or WinMain(). 23 | /// 24 | /// 25 | ApplicationDataContainer localSettings = ApplicationData.Current.LocalSettings; 26 | 27 | /// 28 | 29 | /// Navigation service, provides a decoupled way to trigger the UI Frame 30 | 31 | /// to transition between views. 32 | 33 | /// 34 | 35 | public App() 36 | { 37 | if (!localSettings.Values.ContainsKey("theme")) 38 | { 39 | localSettings.Values.Add("theme", "WD"); 40 | } 41 | else 42 | { 43 | string theme = localSettings.Values["theme"].ToString(); 44 | if (theme != "WD") 45 | { 46 | if (theme == "Dark") 47 | { 48 | RequestedTheme = ApplicationTheme.Dark; 49 | } 50 | else if (theme == "Light") 51 | { 52 | RequestedTheme = ApplicationTheme.Light; 53 | } 54 | } 55 | } 56 | 57 | if (!localSettings.Values.ContainsKey("transparency")) 58 | { 59 | localSettings.Values.Add("transparency", "1"); 60 | } 61 | 62 | if (!localSettings.Values.ContainsKey("TextBoxTheme")) 63 | { 64 | localSettings.Values.Add("TextBoxTheme", "Light"); 65 | } 66 | 67 | if (!localSettings.Values.ContainsKey("titleBarColor")) 68 | { 69 | localSettings.Values.Add("titleBarColor", "0"); 70 | } 71 | 72 | if (!localSettings.Values.ContainsKey("TabBarPosition")) 73 | { 74 | localSettings.Values.Add("TabBarPosition", "0"); 75 | } 76 | 77 | if (!localSettings.Values.ContainsKey("FontFamily")) 78 | { 79 | localSettings.Values.Add("FontFamily", "Segoe UI"); 80 | } 81 | 82 | if (!localSettings.Values.ContainsKey("SearchEngine")) 83 | { 84 | localSettings.Values.Add("SearchEngine", "Bing"); 85 | } 86 | 87 | if (!localSettings.Values.ContainsKey("vibrate")) 88 | { 89 | localSettings.Values.Add("vibrate", "1"); 90 | } 91 | 92 | if (!localSettings.Values.ContainsKey("autoSave")) 93 | { 94 | localSettings.Values.Add("autoSave", "0"); 95 | } 96 | 97 | if (!localSettings.Values.ContainsKey("trimNewLines")) 98 | { 99 | localSettings.Values.Add("trimNewLines", "0"); 100 | } 101 | 102 | if (!localSettings.Values.ContainsKey("hotExit")) 103 | { 104 | localSettings.Values.Add("hotExit", "0"); 105 | } 106 | 107 | if (!localSettings.Values.ContainsKey("flagsEnabled")) 108 | { 109 | localSettings.Values.Add("flagsEnabled", "0"); 110 | } 111 | 112 | if (!localSettings.Values.ContainsKey("highContrast")) 113 | { 114 | localSettings.Values.Add("highContrast", "0"); 115 | } 116 | 117 | this.Suspending += OnSuspending; 118 | this.Resuming += OnResuming; 119 | } 120 | 121 | /// 122 | /// Invoked when the application is launched normally by the end user. Other entry points 123 | /// will be used such as when the application is launched to open a specific file. 124 | /// 125 | /// Details about the launch request and process. 126 | protected override async void OnLaunched(LaunchActivatedEventArgs e) 127 | { 128 | await Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync( 129 | CoreDispatcherPriority.Normal, 130 | async () => 131 | { 132 | Frame rootFrame = Window.Current.Content as Frame; 133 | // Do not repeat app initialization when the Window already has content, 134 | // just ensure that the window is active 135 | 136 | // CoreApplication.EnablePrelaunch was introduced in Windows 10 version 1607 137 | bool canEnablePrelaunch = ApiInformation.IsMethodPresent("Windows.ApplicationModel.Core.CoreApplication", "EnablePrelaunch"); 138 | 139 | if (rootFrame == null) 140 | { 141 | // Create a Frame to act as the navigation context and navigate to the first page 142 | rootFrame = new Frame(); 143 | 144 | // Associate the frame with a SuspensionManager key 145 | if (e.PreviousExecutionState == ApplicationExecutionState.Terminated) 146 | { 147 | // Restore the saved session state only when appropriate 148 | } 149 | 150 | // Place the frame in the current Window 151 | Window.Current.Content = rootFrame; 152 | } 153 | 154 | if (e.PrelaunchActivated == false) 155 | { 156 | // On Windows 10 version 1607 or later, this code signals that this app wants to participate in prelaunch 157 | if (canEnablePrelaunch) 158 | { 159 | TryEnablePrelaunch(); 160 | } 161 | 162 | // TODO: This is not a prelaunch activation. Perform operations which 163 | // assume that the user explicitly launched the app such as updating 164 | // the online presence of the user on a social network, updating a 165 | // what's new feed, etc. 166 | 167 | // When the navigation stack isn't restored navigate to the first page, 168 | // configuring the new page by passing required information as a navigation 169 | // parameter 170 | //MainPage is always in rootFrame so we don't have to worry about restoring the navigation state on resume 171 | rootFrame.Navigate(typeof(MainPage), e.Arguments); 172 | } 173 | 174 | if (ApiInformation.IsApiContractPresent("Windows.Foundation.UniversalApiContract", 2)) 175 | { 176 | await ConfigureJumpList(); 177 | } 178 | 179 | // Ensure the current window is active 180 | Window.Current.Activate(); 181 | }); 182 | } 183 | 184 | protected override async void OnActivated(IActivatedEventArgs args) 185 | { 186 | await Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync( 187 | CoreDispatcherPriority.Normal, 188 | () => 189 | { 190 | Frame rootFrame = Window.Current.Content as Frame; 191 | // Do not repeat app initialization when the Window already has content, 192 | // just ensure that the window is active 193 | if (rootFrame == null) 194 | { 195 | // Create a Frame to act as the navigation context and navigate to the first page 196 | rootFrame = new Frame(); 197 | // Associate the frame with a SuspensionManager key 198 | if (args.PreviousExecutionState == ApplicationExecutionState.Terminated) 199 | { 200 | // Restore the saved session state only when appropriate 201 | } 202 | 203 | // Place the frame in the current Window 204 | Window.Current.Content = rootFrame; 205 | } 206 | 207 | rootFrame.Navigate(typeof(MainPage), args); 208 | 209 | // Ensure the current window is active 210 | Window.Current.Activate(); 211 | }); 212 | } 213 | 214 | protected override void OnFileActivated(FileActivatedEventArgs args) 215 | { 216 | Frame rootFrame = Window.Current.Content as Frame; 217 | // Do not repeat app initialization when the Window already has content, 218 | // just ensure that the window is active 219 | if (rootFrame == null) 220 | { 221 | // Create a Frame to act as the navigation context and navigate to the first page 222 | rootFrame = new Frame(); 223 | // Associate the frame with a SuspensionManager key 224 | if (args.PreviousExecutionState == ApplicationExecutionState.Terminated) 225 | { 226 | // Restore the saved session state only when appropriate 227 | } 228 | 229 | // Place the frame in the current Window 230 | Window.Current.Content = rootFrame; 231 | } 232 | 233 | rootFrame.Navigate(typeof(MainPage), args); 234 | if (rootFrame.Content == null) 235 | { 236 | if (!rootFrame.Navigate(typeof(MainPage))) 237 | { 238 | throw new Exception("Failed to create initial page"); 239 | } 240 | } 241 | 242 | // Ensure the current window is active 243 | Window.Current.Activate(); 244 | } 245 | 246 | protected override void OnShareTargetActivated(ShareTargetActivatedEventArgs args) 247 | { 248 | Frame rootFrame = Window.Current.Content as Frame; 249 | // Do not repeat app initialization when the Window already has content, 250 | // just ensure that the window is active 251 | if (rootFrame == null) 252 | { 253 | // Create a Frame to act as the navigation context and navigate to the first page 254 | rootFrame = new Frame(); 255 | // Associate the frame with a SuspensionManager key 256 | if (args.PreviousExecutionState == ApplicationExecutionState.Terminated) 257 | { 258 | // Restore the saved session state only when appropriate 259 | } 260 | 261 | // Place the frame in the current Window 262 | Window.Current.Content = rootFrame; 263 | } 264 | 265 | rootFrame.Navigate(typeof(MainPage), args); 266 | if (rootFrame.Content == null) 267 | { 268 | if (!rootFrame.Navigate(typeof(MainPage))) 269 | { 270 | throw new Exception("Failed to create initial page"); 271 | } 272 | } 273 | 274 | // Ensure the current window is active 275 | Window.Current.Activate(); 276 | } 277 | 278 | /// 279 | /// Invoked when Navigation to a certain page fails 280 | /// 281 | /// The Frame which failed navigation 282 | /// Details about the navigation failure 283 | void OnNavigationFailed(object sender, NavigationFailedEventArgs e) 284 | { 285 | throw new Exception("Failed to load Page " + e.SourcePageType.FullName); 286 | } 287 | 288 | private void OnResuming(object sender, object e) 289 | { 290 | } 291 | 292 | /// 293 | /// Invoked when application execution is being suspended. Application state is saved 294 | /// without knowing whether the application will be terminated or resumed with the contents 295 | /// of memory still intact. 296 | /// 297 | /// The source of the suspend request. 298 | /// Details about the suspend request. 299 | private void OnSuspending(object sender, SuspendingEventArgs e) 300 | { 301 | var deferral = e.SuspendingOperation.GetDeferral(); 302 | //TODO: Сохранить состояние приложения и остановить все фоновые операции 303 | deferral.Complete(); 304 | } 305 | 306 | /// 307 | /// Encapsulates the call to CoreApplication.EnablePrelaunch() so that the JIT 308 | /// won't encounter that call (and prevent the app from running when it doesn't 309 | /// find it), unless this method gets called. This method should only 310 | /// be called when the caller determines that we are running on a system that 311 | /// supports CoreApplication.EnablePrelaunch(). 312 | /// 313 | private void TryEnablePrelaunch() 314 | { 315 | Windows.ApplicationModel.Core.CoreApplication.EnablePrelaunch(true); 316 | } 317 | 318 | private async Task ConfigureJumpList() 319 | { 320 | if (JumpList.IsSupported() == true) 321 | { 322 | JumpList jumpList = await JumpList.LoadCurrentAsync(); 323 | jumpList.SystemGroupKind = JumpListSystemGroupKind.Recent; 324 | if (jumpList.Items.Count == 0) 325 | { 326 | JumpListItem OpenJumpListItem = JumpListItem.CreateWithArguments("OpenFile", "Open File"); 327 | OpenJumpListItem.Logo = new Uri("ms-appx:///Assets/JumpList/OpenFile.png"); 328 | jumpList.Items.Add(OpenJumpListItem); 329 | 330 | try 331 | { 332 | await jumpList.SaveAsync(); 333 | } 334 | catch (Exception) 335 | { 336 | 337 | } 338 | } 339 | } 340 | } 341 | } 342 | } 343 | -------------------------------------------------------------------------------- /textie/textie/Assets/Associations/textie_all.targetsize-129.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/Associations/textie_all.targetsize-129.png -------------------------------------------------------------------------------- /textie/textie/Assets/Associations/textie_all.targetsize-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/Associations/textie_all.targetsize-16.png -------------------------------------------------------------------------------- /textie/textie/Assets/Associations/textie_all.targetsize-256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/Associations/textie_all.targetsize-256.png -------------------------------------------------------------------------------- /textie/textie/Assets/Associations/textie_all.targetsize-32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/Associations/textie_all.targetsize-32.png -------------------------------------------------------------------------------- /textie/textie/Assets/Associations/textie_all.targetsize-336.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/Associations/textie_all.targetsize-336.png -------------------------------------------------------------------------------- /textie/textie/Assets/Associations/textie_all.targetsize-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/Associations/textie_all.targetsize-48.png -------------------------------------------------------------------------------- /textie/textie/Assets/Associations/textie_all.targetsize-63.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/Associations/textie_all.targetsize-63.png -------------------------------------------------------------------------------- /textie/textie/Assets/Associations/textie_htm.targetsize-129.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/Associations/textie_htm.targetsize-129.png -------------------------------------------------------------------------------- /textie/textie/Assets/Associations/textie_htm.targetsize-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/Associations/textie_htm.targetsize-16.png -------------------------------------------------------------------------------- /textie/textie/Assets/Associations/textie_htm.targetsize-256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/Associations/textie_htm.targetsize-256.png -------------------------------------------------------------------------------- /textie/textie/Assets/Associations/textie_htm.targetsize-32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/Associations/textie_htm.targetsize-32.png -------------------------------------------------------------------------------- /textie/textie/Assets/Associations/textie_htm.targetsize-336.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/Associations/textie_htm.targetsize-336.png -------------------------------------------------------------------------------- /textie/textie/Assets/Associations/textie_htm.targetsize-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/Associations/textie_htm.targetsize-48.png -------------------------------------------------------------------------------- /textie/textie/Assets/Associations/textie_htm.targetsize-63.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/Associations/textie_htm.targetsize-63.png -------------------------------------------------------------------------------- /textie/textie/Assets/Associations/textie_rtf.targetsize-129.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/Associations/textie_rtf.targetsize-129.png -------------------------------------------------------------------------------- /textie/textie/Assets/Associations/textie_rtf.targetsize-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/Associations/textie_rtf.targetsize-16.png -------------------------------------------------------------------------------- /textie/textie/Assets/Associations/textie_rtf.targetsize-256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/Associations/textie_rtf.targetsize-256.png -------------------------------------------------------------------------------- /textie/textie/Assets/Associations/textie_rtf.targetsize-32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/Associations/textie_rtf.targetsize-32.png -------------------------------------------------------------------------------- /textie/textie/Assets/Associations/textie_rtf.targetsize-336.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/Associations/textie_rtf.targetsize-336.png -------------------------------------------------------------------------------- /textie/textie/Assets/Associations/textie_rtf.targetsize-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/Associations/textie_rtf.targetsize-48.png -------------------------------------------------------------------------------- /textie/textie/Assets/Associations/textie_rtf.targetsize-63.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/Associations/textie_rtf.targetsize-63.png -------------------------------------------------------------------------------- /textie/textie/Assets/Associations/textie_txt.targetsize-129.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/Associations/textie_txt.targetsize-129.png -------------------------------------------------------------------------------- /textie/textie/Assets/Associations/textie_txt.targetsize-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/Associations/textie_txt.targetsize-16.png -------------------------------------------------------------------------------- /textie/textie/Assets/Associations/textie_txt.targetsize-256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/Associations/textie_txt.targetsize-256.png -------------------------------------------------------------------------------- /textie/textie/Assets/Associations/textie_txt.targetsize-32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/Associations/textie_txt.targetsize-32.png -------------------------------------------------------------------------------- /textie/textie/Assets/Associations/textie_txt.targetsize-336.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/Associations/textie_txt.targetsize-336.png -------------------------------------------------------------------------------- /textie/textie/Assets/Associations/textie_txt.targetsize-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/Associations/textie_txt.targetsize-48.png -------------------------------------------------------------------------------- /textie/textie/Assets/Associations/textie_txt.targetsize-63.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/Associations/textie_txt.targetsize-63.png -------------------------------------------------------------------------------- /textie/textie/Assets/JumpList/OpenFile.scale-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/JumpList/OpenFile.scale-100.png -------------------------------------------------------------------------------- /textie/textie/Assets/JumpList/OpenFile.scale-100_contrast-black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/JumpList/OpenFile.scale-100_contrast-black.png -------------------------------------------------------------------------------- /textie/textie/Assets/JumpList/OpenFile.scale-100_contrast-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/JumpList/OpenFile.scale-100_contrast-white.png -------------------------------------------------------------------------------- /textie/textie/Assets/JumpList/OpenFile.scale-125.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/JumpList/OpenFile.scale-125.png -------------------------------------------------------------------------------- /textie/textie/Assets/JumpList/OpenFile.scale-125_contrast-black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/JumpList/OpenFile.scale-125_contrast-black.png -------------------------------------------------------------------------------- /textie/textie/Assets/JumpList/OpenFile.scale-125_contrast-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/JumpList/OpenFile.scale-125_contrast-white.png -------------------------------------------------------------------------------- /textie/textie/Assets/JumpList/OpenFile.scale-150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/JumpList/OpenFile.scale-150.png -------------------------------------------------------------------------------- /textie/textie/Assets/JumpList/OpenFile.scale-150_contrast-black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/JumpList/OpenFile.scale-150_contrast-black.png -------------------------------------------------------------------------------- /textie/textie/Assets/JumpList/OpenFile.scale-150_contrast-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/JumpList/OpenFile.scale-150_contrast-white.png -------------------------------------------------------------------------------- /textie/textie/Assets/JumpList/OpenFile.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/JumpList/OpenFile.scale-200.png -------------------------------------------------------------------------------- /textie/textie/Assets/JumpList/OpenFile.scale-200_contrast-black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/JumpList/OpenFile.scale-200_contrast-black.png -------------------------------------------------------------------------------- /textie/textie/Assets/JumpList/OpenFile.scale-200_contrast-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/JumpList/OpenFile.scale-200_contrast-white.png -------------------------------------------------------------------------------- /textie/textie/Assets/JumpList/OpenFile.scale-400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/JumpList/OpenFile.scale-400.png -------------------------------------------------------------------------------- /textie/textie/Assets/JumpList/OpenFile.scale-400_contrast-black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/JumpList/OpenFile.scale-400_contrast-black.png -------------------------------------------------------------------------------- /textie/textie/Assets/JumpList/OpenFile.scale-400_contrast-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/JumpList/OpenFile.scale-400_contrast-white.png -------------------------------------------------------------------------------- /textie/textie/Assets/LargeTile.scale-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/LargeTile.scale-100.png -------------------------------------------------------------------------------- /textie/textie/Assets/LargeTile.scale-125.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/LargeTile.scale-125.png -------------------------------------------------------------------------------- /textie/textie/Assets/LargeTile.scale-150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/LargeTile.scale-150.png -------------------------------------------------------------------------------- /textie/textie/Assets/LargeTile.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/LargeTile.scale-200.png -------------------------------------------------------------------------------- /textie/textie/Assets/LargeTile.scale-400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/LargeTile.scale-400.png -------------------------------------------------------------------------------- /textie/textie/Assets/SmallTile.scale-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/SmallTile.scale-100.png -------------------------------------------------------------------------------- /textie/textie/Assets/SmallTile.scale-125.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/SmallTile.scale-125.png -------------------------------------------------------------------------------- /textie/textie/Assets/SmallTile.scale-150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/SmallTile.scale-150.png -------------------------------------------------------------------------------- /textie/textie/Assets/SmallTile.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/SmallTile.scale-200.png -------------------------------------------------------------------------------- /textie/textie/Assets/SmallTile.scale-400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/SmallTile.scale-400.png -------------------------------------------------------------------------------- /textie/textie/Assets/SocialMedia/GitHub.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/SocialMedia/GitHub.png -------------------------------------------------------------------------------- /textie/textie/Assets/SocialMedia/Twitter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/SocialMedia/Twitter.png -------------------------------------------------------------------------------- /textie/textie/Assets/SplashScreen.scale-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/SplashScreen.scale-100.png -------------------------------------------------------------------------------- /textie/textie/Assets/SplashScreen.scale-125.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/SplashScreen.scale-125.png -------------------------------------------------------------------------------- /textie/textie/Assets/SplashScreen.scale-150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/SplashScreen.scale-150.png -------------------------------------------------------------------------------- /textie/textie/Assets/SplashScreen.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/SplashScreen.scale-200.png -------------------------------------------------------------------------------- /textie/textie/Assets/SplashScreen.scale-400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/SplashScreen.scale-400.png -------------------------------------------------------------------------------- /textie/textie/Assets/Square150x150Logo.scale-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/Square150x150Logo.scale-100.png -------------------------------------------------------------------------------- /textie/textie/Assets/Square150x150Logo.scale-125.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/Square150x150Logo.scale-125.png -------------------------------------------------------------------------------- /textie/textie/Assets/Square150x150Logo.scale-150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/Square150x150Logo.scale-150.png -------------------------------------------------------------------------------- /textie/textie/Assets/Square150x150Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/Square150x150Logo.scale-200.png -------------------------------------------------------------------------------- /textie/textie/Assets/Square150x150Logo.scale-400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/Square150x150Logo.scale-400.png -------------------------------------------------------------------------------- /textie/textie/Assets/Square44x44Logo.altform-lightunplated_targetsize-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/Square44x44Logo.altform-lightunplated_targetsize-16.png -------------------------------------------------------------------------------- /textie/textie/Assets/Square44x44Logo.altform-lightunplated_targetsize-256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/Square44x44Logo.altform-lightunplated_targetsize-256.png -------------------------------------------------------------------------------- /textie/textie/Assets/Square44x44Logo.altform-lightunplated_targetsize-32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/Square44x44Logo.altform-lightunplated_targetsize-32.png -------------------------------------------------------------------------------- /textie/textie/Assets/Square44x44Logo.altform-lightunplated_targetsize-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/Square44x44Logo.altform-lightunplated_targetsize-48.png -------------------------------------------------------------------------------- /textie/textie/Assets/Square44x44Logo.altform-unplated_targetsize-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/Square44x44Logo.altform-unplated_targetsize-16.png -------------------------------------------------------------------------------- /textie/textie/Assets/Square44x44Logo.altform-unplated_targetsize-256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/Square44x44Logo.altform-unplated_targetsize-256.png -------------------------------------------------------------------------------- /textie/textie/Assets/Square44x44Logo.altform-unplated_targetsize-32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/Square44x44Logo.altform-unplated_targetsize-32.png -------------------------------------------------------------------------------- /textie/textie/Assets/Square44x44Logo.altform-unplated_targetsize-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/Square44x44Logo.altform-unplated_targetsize-48.png -------------------------------------------------------------------------------- /textie/textie/Assets/Square44x44Logo.scale-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/Square44x44Logo.scale-100.png -------------------------------------------------------------------------------- /textie/textie/Assets/Square44x44Logo.scale-125.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/Square44x44Logo.scale-125.png -------------------------------------------------------------------------------- /textie/textie/Assets/Square44x44Logo.scale-150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/Square44x44Logo.scale-150.png -------------------------------------------------------------------------------- /textie/textie/Assets/Square44x44Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/Square44x44Logo.scale-200.png -------------------------------------------------------------------------------- /textie/textie/Assets/Square44x44Logo.scale-400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/Square44x44Logo.scale-400.png -------------------------------------------------------------------------------- /textie/textie/Assets/Square44x44Logo.targetsize-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/Square44x44Logo.targetsize-16.png -------------------------------------------------------------------------------- /textie/textie/Assets/Square44x44Logo.targetsize-24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/Square44x44Logo.targetsize-24.png -------------------------------------------------------------------------------- /textie/textie/Assets/Square44x44Logo.targetsize-24_altform-lightunplated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/Square44x44Logo.targetsize-24_altform-lightunplated.png -------------------------------------------------------------------------------- /textie/textie/Assets/Square44x44Logo.targetsize-24_altform-unplated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/Square44x44Logo.targetsize-24_altform-unplated.png -------------------------------------------------------------------------------- /textie/textie/Assets/Square44x44Logo.targetsize-256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/Square44x44Logo.targetsize-256.png -------------------------------------------------------------------------------- /textie/textie/Assets/Square44x44Logo.targetsize-32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/Square44x44Logo.targetsize-32.png -------------------------------------------------------------------------------- /textie/textie/Assets/Square44x44Logo.targetsize-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/Square44x44Logo.targetsize-48.png -------------------------------------------------------------------------------- /textie/textie/Assets/StoreLogo.scale-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/StoreLogo.scale-100.png -------------------------------------------------------------------------------- /textie/textie/Assets/StoreLogo.scale-125.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/StoreLogo.scale-125.png -------------------------------------------------------------------------------- /textie/textie/Assets/StoreLogo.scale-150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/StoreLogo.scale-150.png -------------------------------------------------------------------------------- /textie/textie/Assets/StoreLogo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/StoreLogo.scale-200.png -------------------------------------------------------------------------------- /textie/textie/Assets/StoreLogo.scale-400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/StoreLogo.scale-400.png -------------------------------------------------------------------------------- /textie/textie/Assets/Wide310x150Logo.scale-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/Wide310x150Logo.scale-100.png -------------------------------------------------------------------------------- /textie/textie/Assets/Wide310x150Logo.scale-125.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/Wide310x150Logo.scale-125.png -------------------------------------------------------------------------------- /textie/textie/Assets/Wide310x150Logo.scale-150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/Wide310x150Logo.scale-150.png -------------------------------------------------------------------------------- /textie/textie/Assets/Wide310x150Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/Wide310x150Logo.scale-200.png -------------------------------------------------------------------------------- /textie/textie/Assets/Wide310x150Logo.scale-400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/Wide310x150Logo.scale-400.png -------------------------------------------------------------------------------- /textie/textie/Assets/segmdl2.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/10Develops/textie/14eefbea3f59217c2518c4ef718d468f45a717ab/textie/textie/Assets/segmdl2.ttf -------------------------------------------------------------------------------- /textie/textie/Classes/Item.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Windows.UI.Xaml.Controls; 3 | using Windows.Storage; 4 | using System.ComponentModel; 5 | using Windows.UI.Xaml; 6 | using Windows.System; 7 | using System.IO; 8 | 9 | namespace Textie 10 | { 11 | public class Item : INotifyPropertyChanged 12 | { 13 | public event PropertyChangedEventHandler PropertyChanged; 14 | 15 | private string _title; 16 | public string Title 17 | { 18 | get 19 | { 20 | if(_title.Length >= 10) 21 | { 22 | return string.Format("{0}...", _title.Substring(0, 10)); 23 | } 24 | else 25 | { 26 | return _title; 27 | } 28 | } 29 | set 30 | { 31 | _title = value; 32 | OnPropertyChanged("Title"); 33 | } 34 | } 35 | 36 | public RichEditBoxPivotItem PivotItem { get; set; } 37 | public StorageFile File { get; set; } 38 | public StorageFile CopiedFile { get; set; } 39 | 40 | bool _isCachedFile = false; 41 | public bool IsCachedFile 42 | { 43 | get 44 | { 45 | if(File == null && CopiedFile == null) 46 | { 47 | _isCachedFile = false; 48 | } 49 | else if(CopiedFile != null) 50 | { 51 | _isCachedFile = true; 52 | } 53 | 54 | return _isCachedFile; 55 | } 56 | } 57 | 58 | public string CopiedFileName 59 | { 60 | get 61 | { 62 | if(File == null) 63 | { 64 | if(IsCachedFile == true) 65 | { 66 | return CopiedFile.Name; 67 | } 68 | else 69 | { 70 | return PivotItem.Header.ToString(); 71 | } 72 | } 73 | else 74 | { 75 | return null; 76 | } 77 | } 78 | } 79 | 80 | public string FileName 81 | { 82 | get 83 | { 84 | return File.Name; 85 | } 86 | } 87 | 88 | public string FileType 89 | { 90 | get 91 | { 92 | return File.FileType; 93 | } 94 | } 95 | 96 | public string FilePath 97 | { 98 | get 99 | { 100 | return File.Path; 101 | } 102 | } 103 | 104 | public async void ShowFileInfoDialog() 105 | { 106 | Windows.Storage.FileProperties.BasicProperties basicProperties = 107 | await File.GetBasicPropertiesAsync(); 108 | 109 | ContentDialog FileInfoDialog = new ContentDialog() 110 | { 111 | PrimaryButtonText = "OK" 112 | }; 113 | 114 | FileInfoDialog.Title = "File Information"; 115 | 116 | StackPanel ContentStackPanel = new StackPanel(); 117 | ContentStackPanel.Children.Add(new TextBlock() { Text = FileName, FontSize = 17 }); 118 | 119 | RelativePanel FileStackPanel = new RelativePanel(); 120 | 121 | TextBlock filePathTextBlock = new TextBlock() { Text = FilePath, FontSize = 12, IsTextSelectionEnabled = true, TextWrapping = TextWrapping.NoWrap, Padding = new Thickness(4) }; 122 | ScrollViewer filePathScrollViewer = new ScrollViewer() { Content = filePathTextBlock, HorizontalScrollBarVisibility = ScrollBarVisibility.Auto, MaxWidth = 320, Margin = new Thickness(0, 0, 90, 0) }; 123 | Button openFolderButton = new Button() { Content = "Open folder", FontSize = 12 }; 124 | FileStackPanel.Children.Add(filePathScrollViewer); 125 | FileStackPanel.Children.Add(openFolderButton); 126 | 127 | ContentStackPanel.Children.Add(FileStackPanel); 128 | 129 | openFolderButton.Click += OpenFolderButton_Click; 130 | 131 | ContentStackPanel.Children.Add(new TextBlock() { Text = "File type: " + FileType }); 132 | ContentStackPanel.Children.Add(new TextBlock() { Text = "File size: " + basicProperties.Size + " bytes" }); 133 | ContentStackPanel.Children.Add(new TextBlock() { Text = "Date created: " + File.DateCreated.DateTime }); 134 | ContentStackPanel.Children.Add(new TextBlock() { Text = "Date modified: " + basicProperties.DateModified.DateTime }); 135 | 136 | FileInfoDialog.Content = ContentStackPanel; 137 | 138 | RelativePanel.SetAlignLeftWithPanel(filePathScrollViewer, true); 139 | RelativePanel.SetAlignRightWithPanel(openFolderButton, true); 140 | 141 | await FileInfoDialog.ShowAsync(); 142 | } 143 | 144 | private async void OpenFolderButton_Click(object sender, RoutedEventArgs e) 145 | { 146 | try 147 | { 148 | StorageFolder folder = await StorageFolder.GetFolderFromPathAsync(Path.GetDirectoryName(FilePath)); 149 | await Launcher.LaunchFolderAsync(folder); 150 | } 151 | catch (UnauthorizedAccessException) 152 | { 153 | 154 | } 155 | } 156 | 157 | // Create the OnPropertyChanged method to raise the event 158 | protected void OnPropertyChanged(string name) 159 | { 160 | PropertyChangedEventHandler handler = PropertyChanged; 161 | if (handler != null) 162 | { 163 | handler(this, new PropertyChangedEventArgs(name)); 164 | } 165 | } 166 | } 167 | } 168 | -------------------------------------------------------------------------------- /textie/textie/Classes/RichEditBoxCore.cs: -------------------------------------------------------------------------------- 1 | using Windows.UI.Xaml.Controls; 2 | using Windows.UI.Xaml; 3 | using Windows.UI.Xaml.Input; 4 | using Windows.UI.Xaml.Media; 5 | using Windows.System; 6 | using Windows.Storage; 7 | using Windows.Foundation.Metadata; 8 | using Windows.UI.Text; 9 | using Windows.UI; 10 | using System.Text.RegularExpressions; 11 | 12 | namespace Textie 13 | { 14 | public class RichEditBoxCore : RichEditBox 15 | { 16 | public ITextSelection TextSelection; 17 | 18 | ApplicationDataContainer localSettings = ApplicationData.Current.LocalSettings; 19 | 20 | RichEditBoxCoreText coreText; 21 | 22 | public SaveState TextSaveState; 23 | 24 | public bool ContentChanged = false; 25 | 26 | private string CRLF = "\r\n"; 27 | private string LF = "\n"; 28 | private string CR = "\r"; 29 | 30 | public RichEditBoxCore() 31 | { 32 | coreText = new RichEditBoxCoreText(this); 33 | 34 | string TextBoxTheme = localSettings.Values["TextBoxTheme"].ToString(); 35 | string highContrast = localSettings.Values["highContrast"].ToString(); 36 | 37 | if (highContrast == "1") 38 | { 39 | RequestedTheme = ElementTheme.Dark; 40 | } 41 | else 42 | { 43 | if (TextBoxTheme == "Light") 44 | { 45 | RequestedTheme = ElementTheme.Light; 46 | } 47 | else if (TextBoxTheme == "Dark") 48 | { 49 | RequestedTheme = ElementTheme.Dark; 50 | } 51 | } 52 | 53 | string FontType = localSettings.Values["FontFamily"].ToString(); 54 | FontFamily = new FontFamily(FontType); 55 | 56 | IsRightTapEnabled = true; 57 | IsHoldingEnabled = true; 58 | 59 | IsSpellCheckEnabled = true; 60 | 61 | if (ApiInformation.IsApiContractPresent("Windows.Foundation.UniversalApiContract", 3)) 62 | { 63 | ContextFlyout = null; 64 | } 65 | 66 | if (ApiInformation.IsApiContractPresent("Windows.Foundation.UniversalApiContract", 7)) 67 | { 68 | SelectionFlyout = null; 69 | } 70 | 71 | FontSize = 15; 72 | TextWrapping = TextWrapping.Wrap; 73 | 74 | TextChanging += OnTextChanging; 75 | TextChanged += OnTextChanged; 76 | SelectionChanged += OnSelectionChanged; 77 | 78 | if (ApiInformation.IsApiContractPresent("Windows.Foundation.UniversalApiContract", 5)) 79 | { 80 | PreviewKeyDown += OnPreviewKeyDown; 81 | } 82 | 83 | ToolTipService.SetToolTip(this, string.Format("Length: {0}", CoreText.Text.Length)); 84 | } 85 | 86 | private void OnTextChanging(RichEditBox sender, RichEditBoxTextChangingEventArgs args) 87 | { 88 | if (ApiInformation.IsApiContractPresent("Windows.Foundation.UniversalApiContract", 4)) 89 | { 90 | ContentChanged = args.IsContentChanging; 91 | } 92 | else 93 | { 94 | ContentChanged = (CoreText.Text.Length > 1 && Document.CanUndo()); 95 | } 96 | 97 | if (TextSaveState == SaveState.OpenedFile && !ContentChanged) 98 | { 99 | TextSaveState = SaveState.TextIsUnchanged; 100 | ContentChanged = false; 101 | } 102 | else 103 | { 104 | if (ContentChanged) 105 | { 106 | TextSaveState = SaveState.TextIsChanged; 107 | } 108 | } 109 | } 110 | 111 | private void OnTextChanged(object sender, RoutedEventArgs e) 112 | { 113 | ToolTipService.SetToolTip(this, string.Format("Length: {0}", CoreText.Text.Length)); 114 | } 115 | 116 | private void OnSelectionChanged(object sender, RoutedEventArgs e) 117 | { 118 | string SelectionText = Document.Selection.Text; 119 | if (SelectionText != string.Empty) 120 | { 121 | ToolTipService.SetToolTip(this, string.Format("Length: {0} Selection length: {1}", CoreText.Text.Length, SelectionText.Length)); 122 | } 123 | else 124 | { 125 | ToolTipService.SetToolTip(this, string.Format("Length: {0}", CoreText.Text.Length)); 126 | } 127 | } 128 | 129 | private void OnPreviewKeyDown(object sender, KeyRoutedEventArgs e) 130 | { 131 | if (e.Key == VirtualKey.Tab) 132 | { 133 | if (this != null) 134 | { 135 | Document.Selection.TypeText("\t"); 136 | e.Handled = true; 137 | } 138 | } 139 | } 140 | 141 | public enum SaveState 142 | { 143 | TextIsUnchanged, 144 | TextIsChanged, 145 | OpenedFile 146 | } 147 | 148 | public RichEditBoxCoreText CoreText 149 | { 150 | get 151 | { 152 | return coreText; 153 | } 154 | } 155 | 156 | NewLine _EOL; 157 | public NewLine EOL 158 | { 159 | get 160 | { 161 | if (CoreText.Text.Contains(CRLF)) 162 | { 163 | _EOL = NewLine.CRLF; 164 | } 165 | else if (CoreText.Text.Contains(LF)) 166 | { 167 | _EOL = NewLine.LF; 168 | } 169 | else if (CoreText.Text.Contains(CR)) 170 | { 171 | _EOL = NewLine.CR; 172 | } 173 | 174 | return _EOL; 175 | } 176 | } 177 | 178 | public void ConvertNewLine(NewLine lineOption) 179 | { 180 | switch (lineOption) 181 | { 182 | case (NewLine.LF): 183 | CoreText.Text = CoreText.Text.Replace(CRLF, @LF); 184 | CoreText.Text = CoreText.Text.Replace(CR, @LF); 185 | break; 186 | case (NewLine.CRLF): 187 | CoreText.Text = CoreText.Text.Replace(LF, @CRLF); 188 | CoreText.Text = CoreText.Text.Replace(CR, @CRLF); 189 | break; 190 | case (NewLine.CR): 191 | CoreText.Text = CoreText.Text.Replace(CRLF, @CR); 192 | CoreText.Text = CoreText.Text.Replace(LF, @CR); 193 | break; 194 | } 195 | } 196 | 197 | public int Find(string FindingText, bool MatchCase) 198 | { 199 | int textLength = CoreText.Text.Length; 200 | Document.Selection.SetRange(0, textLength); 201 | Document.Selection.CharacterFormat.BackgroundColor = Colors.White; 202 | 203 | int f; 204 | int c = 0; 205 | 206 | if (MatchCase) 207 | { 208 | f = Regex.Matches(CoreText.Text, FindingText, RegexOptions.None).Count; 209 | } 210 | else 211 | { 212 | f = Regex.Matches(CoreText.Text, FindingText, RegexOptions.IgnoreCase).Count; 213 | } 214 | 215 | if(FindingText == "") 216 | { 217 | f = 0; 218 | } 219 | 220 | Focus(FocusState.Programmatic); 221 | 222 | for (int i = 0; i < f; i++) 223 | { 224 | if (MatchCase == true) 225 | { 226 | c = Document.Selection.FindText(FindingText, 227 | textLength, FindOptions.Case); 228 | } 229 | else 230 | { 231 | c = Document.Selection.FindText(FindingText, 232 | textLength, FindOptions.None); 233 | } 234 | 235 | Document.Selection.CharacterFormat.BackgroundColor = Colors.Yellow; 236 | } 237 | 238 | Document.Selection.SetRange(0, 0); 239 | 240 | if (MatchCase == true) 241 | { 242 | Document.Selection.FindText(FindingText, 243 | textLength, FindOptions.Case); 244 | } 245 | else 246 | { 247 | Document.Selection.FindText(FindingText, 248 | textLength, FindOptions.None); 249 | } 250 | 251 | Document.Selection.CharacterFormat.BackgroundColor = Colors.Yellow; 252 | 253 | return f; 254 | } 255 | 256 | public int Replace(string WhatText, string WithText, bool MatchCase) 257 | { 258 | int textLength = CoreText.Text.Length; 259 | Document.Selection.SetRange(0, textLength); 260 | Document.Selection.CharacterFormat.BackgroundColor = Colors.White; 261 | 262 | int f; 263 | int c = 0; 264 | 265 | if (MatchCase) 266 | { 267 | f = Regex.Matches(CoreText.Text, WhatText, RegexOptions.None).Count; 268 | } 269 | else 270 | { 271 | f = Regex.Matches(CoreText.Text, WhatText, RegexOptions.IgnoreCase).Count; 272 | } 273 | 274 | if (WhatText == "") 275 | { 276 | f = 0; 277 | } 278 | 279 | Focus(FocusState.Programmatic); 280 | 281 | for (int i = 0; i < f; i++) 282 | { 283 | if (MatchCase == true) 284 | { 285 | c = Document.Selection.FindText(WhatText, 286 | textLength, FindOptions.Case); 287 | } 288 | else 289 | { 290 | c = Document.Selection.FindText(WhatText, 291 | textLength, FindOptions.None); 292 | } 293 | 294 | if(Document.Selection != null) 295 | { 296 | Document.Selection.SetText(TextSetOptions.None, WithText); 297 | Document.Selection.CharacterFormat.BackgroundColor = Colors.Yellow; 298 | } 299 | } 300 | 301 | Document.Selection.SetRange(0, 0); 302 | 303 | if (MatchCase == true) 304 | { 305 | Document.Selection.FindText(WithText, 306 | textLength, FindOptions.Case); 307 | } 308 | else 309 | { 310 | Document.Selection.FindText(WithText, 311 | textLength, FindOptions.None); 312 | } 313 | 314 | Document.Selection.CharacterFormat.BackgroundColor = Colors.Yellow; 315 | 316 | return f; 317 | } 318 | 319 | public void Trim(TrimingOptions option) 320 | { 321 | Document.Selection.SetRange(0, CoreText.Text.Length); 322 | if (option == TrimingOptions.Trim) 323 | { 324 | Document.Selection.Text = Document.Selection.Text.Trim(); 325 | } 326 | else if (option == TrimingOptions.TrimStart) 327 | { 328 | Document.Selection.Text = Document.Selection.Text.TrimStart(); 329 | } 330 | else if (option == TrimingOptions.TrimEnd) 331 | { 332 | Document.Selection.Text = Document.Selection.Text.TrimEnd(); 333 | } 334 | } 335 | } 336 | 337 | public enum TrimingOptions 338 | { 339 | Trim = 0, 340 | TrimStart = 1, 341 | TrimEnd = 2 342 | } 343 | 344 | public enum NewLine 345 | { 346 | CRLF = 0, 347 | LF = 1, 348 | CR = 2 349 | } 350 | } -------------------------------------------------------------------------------- /textie/textie/Classes/RichEditBoxCoreText.cs: -------------------------------------------------------------------------------- 1 | using Windows.UI.Text; 2 | using Windows.Storage; 3 | using Windows.ApplicationModel.DataTransfer; 4 | using System; 5 | 6 | namespace Textie 7 | { 8 | public class RichEditBoxCoreText 9 | { 10 | RichEditBoxCore _core; 11 | 12 | ApplicationDataContainer localSettings = ApplicationData.Current.LocalSettings; 13 | 14 | public ICoreTextSelection Selection; 15 | 16 | public RichEditBoxCoreText(RichEditBoxCore core) 17 | { 18 | _core = core; 19 | Selection = new ICoreTextSelection(_core); 20 | } 21 | 22 | string _text; 23 | public string Text 24 | { 25 | get 26 | { 27 | _core.Document.GetText(TextGetOptions.None, out _text); 28 | 29 | string trimNewLines = localSettings.Values["trimNewLines"].ToString(); 30 | 31 | if (trimNewLines == "1") 32 | { 33 | _text = _text.TrimStart('\r'); 34 | } 35 | else if (trimNewLines == "2") 36 | { 37 | _text = _text.TrimEnd('\r'); 38 | } 39 | else if (trimNewLines == "3") 40 | { 41 | _text = _text.Trim('\r'); 42 | } 43 | 44 | return _text; 45 | } 46 | 47 | set 48 | { 49 | _core.Document.SetText(TextSetOptions.None, value); 50 | 51 | string trimNewLines = localSettings.Values["trimNewLines"].ToString(); 52 | 53 | if (trimNewLines == "0") 54 | { 55 | _text = value; 56 | } 57 | else if (trimNewLines == "1") 58 | { 59 | _text = value.TrimStart('\r'); 60 | } 61 | else if (trimNewLines == "2") 62 | { 63 | _text = value.TrimEnd('\r'); 64 | } 65 | else if (trimNewLines == "3") 66 | { 67 | _text = value.Trim('\r'); 68 | } 69 | } 70 | } 71 | 72 | string _textRtf; 73 | public string TextRtf 74 | { 75 | get 76 | { 77 | _core.Document.GetText(TextGetOptions.FormatRtf, out _textRtf); 78 | 79 | string trimNewLines = localSettings.Values["trimNewLines"].ToString(); 80 | 81 | if (trimNewLines == "1") 82 | { 83 | _textRtf = _textRtf.TrimStart('\r'); 84 | } 85 | else if (trimNewLines == "2") 86 | { 87 | _textRtf = _textRtf.TrimEnd('\r'); 88 | } 89 | else if (trimNewLines == "3") 90 | { 91 | _textRtf = _textRtf.Trim('\r'); 92 | } 93 | 94 | return _textRtf; 95 | } 96 | 97 | set 98 | { 99 | _core.Document.SetText(TextSetOptions.FormatRtf, value); 100 | 101 | string trimNewLines = localSettings.Values["trimNewLines"].ToString(); 102 | 103 | if (trimNewLines == "0") 104 | { 105 | _textRtf = value; 106 | } 107 | else if (trimNewLines == "1") 108 | { 109 | _textRtf = value.TrimStart('\r'); 110 | } 111 | else if (trimNewLines == "2") 112 | { 113 | _textRtf = value.TrimEnd('\r'); 114 | } 115 | else if (trimNewLines == "3") 116 | { 117 | _textRtf = value.Trim('\r'); 118 | } 119 | } 120 | } 121 | 122 | public void Cut() 123 | { 124 | Copy(); 125 | _core.Document.Selection.Text = string.Empty; 126 | } 127 | 128 | public void Copy() 129 | { 130 | var dataPackage = new DataPackage(); 131 | dataPackage.SetText(_core.Document.Selection.Text); 132 | Clipboard.SetContent(dataPackage); 133 | } 134 | 135 | public async void Paste() 136 | { 137 | DataPackageView dataPackageView = Clipboard.GetContent(); 138 | if (dataPackageView.Contains(StandardDataFormats.Text)) 139 | { 140 | string text = await dataPackageView.GetTextAsync(); 141 | // To output the text from this example, you need a TextBlock control 142 | _core.Document.Selection.SetText(TextSetOptions.None, text); 143 | _core.Document.Selection.SetRange(_core.Document.Selection.EndPosition, _core.Document.Selection.EndPosition); 144 | } 145 | } 146 | 147 | public void SelectAll() 148 | { 149 | _core.Document.Selection.SetRange(0, Text.Length); 150 | } 151 | } 152 | 153 | public class ICoreTextSelection 154 | { 155 | RichEditBoxCore _core; 156 | 157 | public ICoreTextSelection(RichEditBoxCore core) 158 | { 159 | _core = core; 160 | } 161 | 162 | string _text; 163 | public string Text 164 | { 165 | get 166 | { 167 | _core.Document.Selection.GetText(TextGetOptions.None, out _text); 168 | 169 | return _text; 170 | } 171 | } 172 | 173 | public bool IsNumbersOnly() 174 | { 175 | foreach (char c in _core.Document.Selection.Text) 176 | { 177 | if (!char.IsDigit(c)) 178 | return false; 179 | } 180 | return true; 181 | } 182 | } 183 | } 184 | -------------------------------------------------------------------------------- /textie/textie/Classes/RichEditBoxPivot.cs: -------------------------------------------------------------------------------- 1 | using Windows.UI.Xaml.Controls; 2 | 3 | namespace Textie 4 | { 5 | public class RichEditBoxPivot : Pivot 6 | { 7 | public RichEditBoxPivotItem SelectedRichEditBoxItem 8 | { 9 | get 10 | { 11 | return (RichEditBoxPivotItem)SelectedItem; 12 | } 13 | } 14 | 15 | public RichEditBoxCore SelectedRichEditBox 16 | { 17 | get 18 | { 19 | return SelectedRichEditBoxItem.EditBox; 20 | } 21 | } 22 | 23 | public RichEditBoxPivotItem AddTab() 24 | { 25 | RichEditBoxPivotItem item = new RichEditBoxPivotItem(); 26 | Items.Add(item); 27 | SelectedItem = item; 28 | return item; 29 | } 30 | 31 | public bool CloseTab(RichEditBoxPivotItem tab) 32 | { 33 | bool canRemove = Items.Count > 1; 34 | 35 | if (canRemove) 36 | { 37 | Items.Remove(tab); 38 | } 39 | 40 | return canRemove; 41 | } 42 | 43 | public void CloseCurrentTab() 44 | { 45 | RichEditBoxPivotItem item = SelectedRichEditBoxItem; 46 | CloseTab(item); 47 | } 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /textie/textie/Classes/RichEditBoxPivotItem.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | using Windows.UI.Xaml; 3 | using Windows.UI.Xaml.Controls; 4 | 5 | namespace Textie 6 | { 7 | public class RichEditBoxPivotItem : PivotItem 8 | { 9 | public event PropertyChangedEventHandler PropertyChanged; 10 | 11 | private RichEditBoxCore _editBox; 12 | private Item _listViewItem; 13 | 14 | public RichEditBoxPivotItem() : this(new Item(), new RichEditBoxCore()) 15 | { 16 | 17 | } 18 | 19 | public RichEditBoxPivotItem(Item listViewItem, RichEditBoxCore editBox) 20 | { 21 | listViewItem.PivotItem = this; 22 | _listViewItem = listViewItem; 23 | 24 | Margin = new Thickness(0, 0, 0, 0); 25 | Content = editBox; 26 | _editBox = editBox; 27 | 28 | Padding = new Thickness(0, 0, 0, 0); 29 | } 30 | 31 | public Item ListViewItem 32 | { 33 | get 34 | { 35 | return _listViewItem; 36 | } 37 | } 38 | 39 | public RichEditBoxCore EditBox 40 | { 41 | get 42 | { 43 | return _editBox; 44 | } 45 | } 46 | 47 | public new object Header 48 | { 49 | get 50 | { 51 | return base.Header; 52 | } 53 | set 54 | { 55 | base.Header = value; 56 | OnPropertyChanged("Header"); 57 | } 58 | } 59 | 60 | // Create the OnPropertyChanged method to raise the event 61 | protected void OnPropertyChanged(string name) 62 | { 63 | PropertyChangedEventHandler handler = PropertyChanged; 64 | if (handler != null) 65 | { 66 | handler(this, new PropertyChangedEventArgs(name)); 67 | } 68 | } 69 | } 70 | } 71 | -------------------------------------------------------------------------------- /textie/textie/Package.appxmanifest: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | Textie Editor 7 | 10Develops 8 | Assets\StoreLogo.png 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | images\icon.png 39 | Textie URI Scheme 40 | 41 | 42 | 43 | 44 | Text Document for Textie 45 | Assets\Associations\textie_txt.png 46 | Text Document, opening with Textie Editor 47 | 48 | 49 | .txt 50 | .text 51 | .log 52 | .ini 53 | 54 | 55 | 56 | 57 | 58 | RTF Document for Textie 59 | Assets\Associations\textie_rtf.png 60 | RTF Document, opening with Textie Editor 61 | 62 | 63 | .rtf 64 | 65 | 66 | 67 | 68 | 69 | HTML file for Textie 70 | Assets\Associations\textie_htm.png 71 | HTML file, opening with Textie Editor 72 | 73 | 74 | .html 75 | .htm 76 | 77 | 78 | 79 | 80 | 81 | XML file for Textie 82 | Assets\Associations\textie_htm.png 83 | XML file, opening with Textie Editor 84 | 85 | 86 | .xml 87 | 88 | 89 | 90 | 91 | 92 | CSS file for Textie 93 | Assets\Associations\textie_htm.png 94 | CSS file, opening with Textie Editor 95 | 96 | 97 | .css 98 | 99 | 100 | 101 | 102 | 103 | JS file for Textie 104 | Assets\Associations\textie_htm.png 105 | JS file, opening with Textie Editor 106 | 107 | 108 | .js 109 | 110 | 111 | 112 | 113 | 114 | PHP file for Textie 115 | Assets\Associations\textie_all.png 116 | PHP file, opening with Textie Editor 117 | 118 | 119 | .php 120 | 121 | 122 | 123 | 124 | 125 | C file for Textie 126 | Assets\Associations\textie_all.png 127 | C file, opening with Textie Editor 128 | 129 | 130 | .c 131 | 132 | 133 | 134 | 135 | 136 | C# file for Textie 137 | Assets\Associations\textie_all.png 138 | C# file, opening with Textie Editor 139 | 140 | 141 | .cs 142 | 143 | 144 | 145 | 146 | 147 | C++ file for Textie 148 | Assets\Associations\textie_all.png 149 | C++ file, opening with Textie Editor 150 | 151 | 152 | .h 153 | .cpp 154 | 155 | 156 | 157 | 158 | 159 | D file for Textie 160 | Assets\Associations\textie_all.png 161 | D file, opening with Textie Editor 162 | 163 | 164 | .d 165 | 166 | 167 | 168 | 169 | 170 | VB file for Textie 171 | Assets\Associations\textie_all.png 172 | VB file, opening with Textie Editor 173 | 174 | 175 | .vb 176 | 177 | 178 | 179 | 180 | 181 | 182 | .txt 183 | .html 184 | .text 185 | .htm 186 | .xml 187 | .log 188 | .vb 189 | .cs 190 | .h 191 | .rtf 192 | .d 193 | .cpp 194 | .css 195 | .ini 196 | 197 | HTML 198 | Text 199 | URI 200 | RTF 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | -------------------------------------------------------------------------------- /textie/textie/Pages/FlagsPage.xaml: -------------------------------------------------------------------------------- 1 |  10 | 11 | 12 | 13 |